Last active
August 2, 2022 23:22
-
-
Save ctrlcctrlv/0790c19953e96cbc898ff6c2d9d8685e to your computer and use it in GitHub Desktop.
Current time views (UTC, local) + timezone diff view for SQLite3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| DROP VIEW IF EXISTS _dt_time_local; | |
| DROP VIEW IF EXISTS _dt_time_utc; | |
| CREATE VIEW IF NOT EXISTS _dt_time_local AS | |
| SELECT strftime('%s', 'now', 'localtime') Unix, | |
| julianday('now', 'localtime') Julian, | |
| datetime('now', 'localtime') SQL; | |
| CREATE VIEW IF NOT EXISTS _dt_time_utc AS | |
| SELECT strftime('%s', 'now') Unix, | |
| julianday('now') Julian, | |
| datetime('now') SQL; | |
| DROP VIEW IF EXISTS _dt_localtime_utctime_joined; | |
| CREATE VIEW IF NOT EXISTS _dt_localtime_utctime_joined AS | |
| SELECT _dt_time_local.Unix LocalUnix, _dt_time_local.Julian LocalJulian, _dt_time_local.SQL LocalSQL, | |
| _dt_time_utc.Unix UTCUnix, _dt_time_utc.Julian UTCJulian, _dt_time_utc.SQL UTCSQL | |
| FROM _dt_time_local LEFT JOIN _dt_time_utc; | |
| DROP VIEW IF EXISTS _dt_localtime_diff; | |
| CREATE VIEW IF NOT EXISTS _dt_localtime_diff AS | |
| WITH | |
| joined AS (SELECT * FROM _dt_localtime_utctime_joined), | |
| unixdiff AS (SELECT CAST(LocalUnix - UTCUnix AS INTEGER) SecondsDiff FROM joined), | |
| diff AS (SELECT CAST(SecondsDiff AS REAL) SecondsDiff, SecondsDiff / 60.0 MinutesDiff, SecondsDiff / 60.0 / 60.0 HoursDiff FROM unixdiff), | |
| juliandiff AS (SELECT PRINTF("%3g", LocalJulian - UTCJulian) JulianDiff FROM joined), | |
| humandiff AS (SELECT IIF(ABS(LocalUnix - UTCUnix) != LocalUnix - UTCUnix, '-', '') || | |
| (SELECT PRINTF("%02d:%02d", ABS(HoursDiff), ABS(CAST(HoursDiff AS INTEGER) * 60) - ABS(MinutesDiff))) HumanDiff FROM joined | |
| LEFT JOIN diff) | |
| SELECT SecondsDiff, MinutesDiff, HoursDiff, JulianDiff, HumanDiff | |
| FROM diff | |
| LEFT JOIN juliandiff | |
| LEFT JOIN humandiff; | |
| SELECT * FROM _dt_localtime_diff LEFT JOIN _dt_localtime_utctime_joined; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment