首页 > 解决方案 > 将小时数添加到 Sqlite 中的时间戳列会导致 NULL,为什么?

问题描述

我从以下位置得到 NULL(什么都没有):

SELECT DATETIME(ServiceCall_CreatedOn,'-6 hours') AS '服务创建时间:' ...

其中 ServiceCall_CreatedOn 是一个 Sqlite 文本列,其中包含:“2019-01-20 4:48:11”(当然不包括引号)

以下:

SELECT ServiceCall_CreatedOn AS '服务创建时间:' ...

和以下

SELECT DATETIME('2019-01-20 4:48:11','-6 hours') AS '服务创建时间:' ...

做工作!!!!!

为什么 SQLite DATETIME 时间减法适用于日期文字而不是其上的 ServiceCall_CreatedOn 列?什么可能是解决方案?

一张图有问题

标签: sqlitedatetime

解决方案


我相信您的问题是您的格式无效,因为您使用的是 1 位数字而不是 2 小时。

那是

SELECT DATETIME('2019-01-20 4:48:11','-6 hours') AS 'Service Created On:' 

返回空值,而

SELECT DATETIME('2019-01-20 04:48:11','-6 hours') AS 'Service Created On:' 

返回2019-01-19 22:48:11

例如

SELECT 
    DATETIME('2019-01-20 4:48:11','-6 hours') AS 'Service Created On: Version1',
    DATETIME('2019-01-20 04:48:11','-6 hours') AS 'Service Created On: Version2'
;

结果是

在此处输入图像描述


推荐阅读