diff options
author | June McEnroe <june@causal.agency> | 2021-04-27 19:02:07 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2021-04-27 19:02:07 -0400 |
commit | 0e7a232b4fec24afc880a7f1c79f54103b4a694f (patch) | |
tree | 651c8c48610bf7153e88da5340cc7dc895f349ec /scoop.c | |
parent | Use QueryCap for select (diff) | |
download | litterbox-0e7a232b4fec24afc880a7f1c79f54103b4a694f.tar.gz litterbox-0e7a232b4fec24afc880a7f1c79f54103b4a694f.zip |
Interpret -D, -a, -b as local time with -L
Diffstat (limited to '')
-rw-r--r-- | scoop.c | 38 |
1 files changed, 33 insertions, 5 deletions
diff --git a/scoop.c b/scoop.c index 95fb794..6c2957b 100644 --- a/scoop.c +++ b/scoop.c @@ -364,9 +364,19 @@ int main(int argc, char *argv[]) { append( where, SQL( - AND events.time >= strftime('%s', :date, 'start of day') - AND events.time - < strftime('%s', :date, 'start of day', '+1 day') + AND events.time >= + CASE WHEN :local THEN + strftime('%s', :date, 'start of day', 'utc') + ELSE + strftime('%s', :date, 'start of day') + END + AND events.time < + CASE WHEN :local THEN + strftime('%s', :date, 'start of day', '+1 day', + 'utc') + ELSE + strftime('%s', :date, 'start of day', '+1 day') + END ) ); binds[n++] = Bind(":date", optarg, 0); @@ -389,11 +399,29 @@ int main(int argc, char *argv[]) { binds[n++] = Bind(":target", optarg, 0); } break; case 'a': { - append(where, SQL(AND events.time >= strftime('%s', :after))); + append( + where, + SQL( + AND events.time >= + CASE WHEN :local + THEN strftime('%s', :after, 'utc') + ELSE strftime('%s', :after) + END + ) + ); binds[n++] = Bind(":after", optarg, 0); } break; case 'b': { - append(where, SQL(AND events.time < strftime('%s', :before))); + append( + where, + SQL( + AND events.time < + CASE WHEN :local + THEN strftime('%s', :before, 'utc') + ELSE strftime('%s', :before) + END + ) + ); binds[n++] = Bind(":before", optarg, 0); } break; case 'c': { |