Sql 日期和时间戳与Excel中ODBC中的今天的比较? 问题:
我正在通过Excel ODBC查询数据库 我可以在我的Excel的ODBC查询中将字段与硬编码日期进行比较:Sql 日期和时间戳与Excel中ODBC中的今天的比较? 问题:,sql,excel,tsql,odbc,Sql,Excel,Tsql,Odbc,我正在通过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.BOMENDDAT_0 > {ts '2018-05-05 00:00:00'}
但是我似乎无法与现在的日期作适当的比较:
BOMD.BOMENDDAT_0 > {ts SYSDATETIME()}
DATEDIFF(d, SYSDATETIME(), BOMD.BOMENDDAT_0) > 0
有什么建议吗?
上下文 我正在尝试构建一个查询,仅选择今天日期介于以下日期之间的记录:
- 开始日期(
)BOMD.BOMSTRDAT\u 0
- 结束日期(
)BOMD.BOMENDDAT\u 0
- 是一种特殊格式,在Excel中如下所示:
'26/02/2018 00:00:00'
(法语格式,日-月-年) - 是否可以填充
- 0似乎是
'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
)
选择BOMD.BOMQTY_0、BOMD.UPDDAT_0、BOMD.BOMSTRDAT_0、BOMD.BOMENDDAT_0
从myDB.BOMD BOMD
其中BOMD.UPDDAT_0>{ts'2018-01-01 00:00:00'}
及(
(BOMD.BOMSTRDAT_0<{ts SYSDATETIME()})
或BOMD.BOMSTRDAT_0=0
或BOMD.BOMSTRDAT_0为空
)
及(
(BOMD.BOMENDDAT_0>{ts SYSDATETIME()})
或BOMD.BOMENDDAT_0=0
或BOMD.BOMENDDAT_0为空
)
{ts'2018-05-05 00:00:00'}
用于将字符串转换为日期时间数据类型,您不能在已经是日期时间(确切地说是日期时间2)数据类型的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
)
选择BOMD.BOMQTY_0、BOMD.UPDDAT_0、BOMD.BOMSTRDAT_0、BOMD.BOMENDDAT_0
从myDB.BOMD BOMD
其中BOMD.UPDDAT_0>{ts'2018-01-01 00:00:00'}
及(
(BOMD.BOMSTRDAT_0SYSDATETIME())
或BOMD.BOMENDDAT_0=0
或BOMD.BOMENDDAT_0为空
)
顺便说一句,您的代码还将返回BOMENDDAT_0
和BOMSTRDAT
都是零或空的行,这是真正的预期行为吗?很抱歉,接受晚了,您的回答终于帮助我实现了这一点!我强制以文本形式显示日期“0”,并添加了BOMD.BOMSTRDAT_0={ts'1753-01-01 00:00:00'}
。是的,我对“管理”规则不负责,所以这确实是我的预期行为;)非常感谢!