我想在我的查询中添加条件,例如2012-10-05 00:29:06.338< =今天的日期,但是我遇到了问题。
请帮我解决这个问题。
我的查询如下:
Select * from table1
where
CONVERT(varchar(12),'2012-10-05 00:29:06.338', 106) + ' ' + CONVERT(varchar(12),'2012-10-05 00:29:06.338', 108) <= CONVERT(varchar(12), GETDATE(),106) + ' 23:59:00.000'
答案 0 :(得分:0)
您正在尝试将字符串评估为日期:
Select '8'
where
CONVERT(DATETIME,CONVERT(varchar,Col1, 101))
+ ' ' + CONVERT(DATETIME,CONVERT(varchar,Col1,108))
<= CONVERT(DATETIME,CONVERT(varchar, GETDATE(),101))+' ' + CONVERT(DATETIME,CONVERT(varchar,'23:59:00.000', 108))
答案 1 :(得分:0)
您不能通过将两个值都转换为varchar来进行日期比较。您需要将值转换为datetime并进行比较。
如果数据库中名为col1
的列是日期时间,则可以将其直接与GETDATE()
进行比较。
例如:
select * from table1 where col1 > GETDATE()
如果您确实需要将日期与字符串进行比较,则可以明确转换为datetime:
Select *
from table1
where CONVERT(DATETIME,'2012-10-05 00:29:06.338') <= GETDATE()
或者您可以让SQL Server隐式为您进行转换:
Select *
from table1
where '2012-10-05 00:29:06.338' <= GETDATE()