select
datetime(SVMXC__Scheduled_Date_Time__c),
SVMXC__Scheduled_Date_Time__c
from table_a
为datetime函数返回null。
我想得到之间的区别
datetime(SVMXC__Scheduled_Date_Time__c) - datetime('now')
[2020-04-26T17:45:00.000+0000
是存储为varchar
的日期。
要使其正常工作,您需要指定日期,使其具有SQLite可以识别的格式。这是两个选项。
如果偏移量始终为+0000
,如问题所示,则可以将其删除。这为您提供了格式YYYY-MM-DDTHH:MM:SS.SSS
,SQLite可以理解:
substr(SVMXC__Scheduled_Date_Time__c, 1, 23)
有了这个值,您就可以使用julianday()
计算与现在的差值,以天数为单位:
select
SVMXC__Scheduled_Date_Time__c,
julianday(substr(SVMXC__Scheduled_Date_Time__c, 1, 23)) - julianday('now') diff
from mytable
-
另一方面,如果确实需要考虑偏移量,则SQLite期望小时与分钟之间为:
,因此您需要将其插入字符串中:
substr(SVMXC__Scheduled_Date_Time__c, 1, 25)
|| ':'
|| substr(SVMXC__Scheduled_Date_Time__c, 1, -2)
然后:
select
SVMXC__Scheduled_Date_Time__c,
julianday(
substr(SVMXC__Scheduled_Date_Time__c, 1, 25)
|| ':'
|| substr(SVMXC__Scheduled_Date_Time__c, 1, -2)
) - julianday('now') diff
from mytable