Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sqlite 两个日期之间的差异显示不正确_Sqlite_Date - Fatal编程技术网

Sqlite 两个日期之间的差异显示不正确

Sqlite 两个日期之间的差异显示不正确,sqlite,date,Sqlite,Date,我试图找出两个日期之间的差异(Currentdate Duedate) 我使用了Julianday('now')-Julianday(T1.DD),当结果为正时(当currentDate>DueDate),结果显示良好,但当DueDate>currentDate时,结果不正确(负结果比预期低1天) 审判了下列陈述: Select( CAST((Julianday('now')-Julianday(T1.DD)) As Integer) 数据库中DD列的示例格式2017-07-21 00:00:

我试图找出两个日期之间的差异(Currentdate Duedate)

我使用了
Julianday('now')-Julianday(T1.DD)
,当结果为正时(当currentDate>DueDate),结果显示良好,但当DueDate>currentDate时,结果不正确(负结果比预期低1天)

审判了下列陈述:

Select( CAST((Julianday('now')-Julianday(T1.DD)) As Integer)
数据库中DD列的示例格式
2017-07-21 00:00:00

select case when julianday('now') > julianday(T1.DD) 
then cast (julianday('now') - julianday(T1.DD) as int) 
else cast ((julianday(T1.DD) - julianday('now')  + 1) as int) 
end 
from test;
更新1:

select cast(julianday('now') as int) - cast(julianday(T1.DD) as int) 
from test;
更新2:

select cast(julianday(date('now') )- julianday(date(T1.DD)) as int ) 
from test;
更新1:

select cast(julianday('now') as int) - cast(julianday(T1.DD) as int) 
from test;
更新2:

select cast(julianday(date('now') )- julianday(date(T1.DD)) as int ) 
from test;

DD列的类型是什么?约会?时间戳?为什么不使用datediff?列的DateType是DateDD列的类型是什么?约会?时间戳?为什么不使用datediff?列的DateType是Dateyou是对的,不需要引号,因为它是一个列名。查询返回正确的结果,但假设我的DD(DueDate)是7月23日,当前日期是7月21日,则返回2,公式将始终是currentDate DueDate,因此我希望-2作为结果选择cast(julianday('now'))as int)-从测试中转换(julianday(T1.DD)as int);结果显示-1当DueDate为2017-07-23 00:00:00时,从测试中选择cast(julianday(日期('now'))-julianday(日期(T1.DD))作为int;:它可以工作:)AWSUM:)你是对的,不需要引号,因为它是一个列名。查询返回正确的结果,但是假设我的DD(DueDate)是7月23日,当前日期是7月21日,那么它返回2,公式将始终是currentDate DueDate,所以我希望-2作为结果选择cast(julianday('now')作为int)-cast(julianday(T1.DD)作为int)从测试开始;结果显示-1当DueDate为2017-07-23 00:00:00时,从测试中选择cast(julianday(日期('now'))-julianday(日期(T1.DD))作为int;:它工作:)AWSUM:)