所以我在SQL Server上的数据库中有一个日期时间列。我想做这个简单的select语句:
SELECT *
FROM Res
Where dateSubmit='6/17/2010 5:01:26 PM'
dateSubmit
是日期时间数据类型,我的数据库有一行,其中dateSubmit是6/17/2010 5:01:26 PM
但是,当我执行此语句时,它返回null。
答案 0 :(得分:7)
我认为SQL Server保留的精度数字比显示的数字更多。
试试这个:
SELECT *
FROM Res
Where dateSubmit between '6/17/2010 5:01:26 PM' and '6/17/2010 5:01:27 PM'
答案 1 :(得分:1)
问题是小时:分钟:秒部分,你永远不会得到确切的秒,这就是为什么你会得到null。 尝试使用
SELECT *
FROM Res
Where DATEDIFF ( day , dateSubmit , '6/17/2010 5:01:26 PM' )=0
有关详细信息,请查看此link
“day”可以替换为其他任何内容,因为“DatePart”请参阅link,例如
SELECT *
FROM Res
Where DATEDIFF ( minute, dateSubmit , '6/17/2010 5:01:26 PM' )=0
答案 2 :(得分:0)
如果不相关则删除时间
Dateadd(d,datediff(d,0,getdate()),0)
答案 3 :(得分:0)
当我尝试在我的SQL Server(2005)版本中运行类似的东西时,它按预期工作。
尝试取出PM并使用24小时格式:
SELECT *
FROM Res
Where dateSubmit='6/17/2010 17:01:26'
答案 4 :(得分:0)
看起来它应该有效。你可以试试 SELECT * FROM Res其中cast(dateSubmit as nvarchar)='6/17/2010 5:01:26 PM'