我想只选择具有当前日期的行。
SELECT Mandant, BelId, Typ, Datum FROM myTable WHERE Datum = DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 0)
这不起作用我得到一张空桌
SELECT Mandant, BelId, Typ, Datum FROM myTable WHERE Datum = CONVERT(date,GETDATE())
这也行不通。
我试图转换基准列
SELECT Mandant, BelId, Typ, CONVERT(date,Datum) AS PPDatum FROM myTable WHERE PPDatum = CONVERT(date,GETDATE())
我收到一个错误: 列名称无效
我做错了什么?
答案 0 :(得分:2)
这将有效:
SELECT Mandant, BelId, Typ, Datum
FROM myTable
WHERE Datum >= CAST(GETDATE() AS DATE)
AND Datum <= GETDATE();
它将确保Datum
大于'2017-07-10'
且小于当前时间戳。
您还可以执行以下操作:
SELECT Mandant, BelId, Typ, Datum
FROM myTable
WHERE CAST(Datum AS DATE) = CAST(GETDATE() AS DATE);
但这会导致执行计划不像上面那样漂亮。
答案 1 :(得分:0)
应该像
一样简单SELECT Mandant, BelId, Typ, Datum
FROM myTable WHERE cast(Datum as date) = cast(GETDATE() as date)