SQLite Forum

Is date/time atomic per statement/transaction?
Login
It is atomic per statement (not per transaction), as demonstrated by this experiment:

```
$ strace -c sqlite3 :memory: \
"SELECT date('now'),time('now')"
2020-09-07|18:23:18
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  0.20    0.000020          20         1           gettimeofday
------ ----------- ----------- --------- --------- ----------------
100.00    0.010088                   282         5 total

$ strace -c sqlite3 :memory: \
"SELECT date('now'),time('now')" \
"SELECT date('now'),time('now')"
2020-09-07|18:24:43
2020-09-07|18:24:43
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  0.54    0.000052          26         2           gettimeofday
------ ----------- ----------- --------- --------- ----------------
100.00    0.009686                   284         5 total

$ strace -c sqlite3 :memory: \
"BEGIN TRANSACTION" \
"SELECT date('now'),time('now')" \
"SELECT date('now'),time('now')" \
"COMMIT"
2020-09-07|18:32:26
2020-09-07|18:32:26
% time     seconds  usecs/call     calls    errors syscall
------ ----------- ----------- --------- --------- ----------------
  0.94    0.000052          26         2           gettimeofday
------ ----------- ----------- --------- --------- ----------------
100.00    0.005525                   284         5 total

```
Note: counts of other function calls removed for brevity.

~~~
-- 
Regards,
Kees Nuyt
~~~