[英]Date and time stamp comparison with today in ODBC in Excel?
我正在通过Excel ODBC查询数据库。
我可以使用以下命令在Excel的ODBC查询中 将该字段与硬编码日期进行比较 :
BOMD.BOMENDDAT_0 > {ts '2018-05-05 00:00:00'}
但是我似乎无法与当前日期进行适当的比较 :
BOMD.BOMENDDAT_0 > {ts SYSDATETIME()}
DATEDIFF(d, SYSDATETIME(), BOMD.BOMENDDAT_0) > 0
有什么建议吗?
我正在尝试建立一个查询,该查询仅选择今天的日期介于之间的记录:
BOMD.BOMSTRDAT_0
) BOMD.BOMENDDAT_0
) 那些日期:
'26/02/2018 00:00:00'
'00/01/1900 00:00:00'
整个查询如下所示:
SELECT BOMD.BOMQTY_0, BOMD.UPDDAT_0, BOMD.BOMSTRDAT_0, BOMD.BOMENDDAT_0
FROM myDB.BOMD BOMD
WHERE BOMD.UPDDAT_0 > {ts '2018-01-01 00:00:00'}
AND (
(BOMD.BOMSTRDAT_0 < {ts SYSDATETIME()})
OR BOMD.BOMSTRDAT_0 = 0
OR BOMD.BOMSTRDAT_0 is null
)
AND (
(BOMD.BOMENDDAT_0 > {ts SYSDATETIME()})
OR BOMD.BOMENDDAT_0 = 0
OR BOMD.BOMENDDAT_0 is null
)
{ts '2018-05-05 00:00:00'}
用于将字符串转换为日期时间数据类型,您不能在已为日期时间(精确为datetime2)数据类型的SYSDATETIME()
上使用它,只需使其:
SELECT BOMD.BOMQTY_0, BOMD.UPDDAT_0, BOMD.BOMSTRDAT_0, BOMD.BOMENDDAT_0
FROM myDB.BOMD BOMD
WHERE BOMD.UPDDAT_0 > {ts '2018-01-01 00:00:00'}
AND (
(BOMD.BOMSTRDAT_0 < SYSDATETIME())
OR BOMD.BOMSTRDAT_0 = 0
OR BOMD.BOMSTRDAT_0 is null
)
AND (
(BOMD.BOMENDDAT_0 > SYSDATETIME())
OR BOMD.BOMENDDAT_0 = 0
OR BOMD.BOMENDDAT_0 is null
)
顺便说一句,您的代码还将返回BOMENDDAT_0
和BOMSTRDAT
均为零或为null的行,这真的是预期的行为吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.