我在SQL Server数据库中有一个datetime类型的列。我想要执行这个简单的select语句:
SELECT *
FROM Res
Where dateSubmit='6/17/2010 5:01:26 PM'
dateSubmit
是一个日期时间数据类型,我的数据库中有一行数据,其中 dateSubmit
的值为 6/17/2010 5:01:26 PM。
然而,当我执行这条语句时,它返回了空值(null)。
我在SQL Server数据库中有一个datetime类型的列。我想要执行这个简单的select语句:
SELECT *
FROM Res
Where dateSubmit='6/17/2010 5:01:26 PM'
dateSubmit
是一个日期时间数据类型,我的数据库中有一行数据,其中 dateSubmit
的值为 6/17/2010 5:01:26 PM。
然而,当我执行这条语句时,它返回了空值(null)。
SELECT *
FROM Res
Where dateSubmit between '6/17/2010 5:01:26 PM' and '6/17/2010 5:01:27 PM'
dateSubmit>='6/17/2010 5:01:26 PM' and dateSubmit<'6/17/2010 5:01:27 PM'
,因为 BETWEEN
会给你小于等于结束范围值的行,而你只想要小于结束值的行。 - KM.'2010-06-17T17:01:26'
,SQL Server的表现会更好。如果你正在使用参数,请确保在尝试之前去掉毫秒。 - TobyBETWEEN
,使用>=
或>
以及<=
或<
更加清晰明了。 - KM.当我在我的SQL Server版本(2005)中尝试运行类似的东西时,它按预期工作。
尝试去掉PM并改用24小时格式:
SELECT *
FROM Res
Where dateSubmit='6/17/2010 17:01:26'
如果时间无关,则剥离时间
Dateadd(d, datediff(d,0,getdate()),0)
看起來它應該可以運作。您可以嘗試使用以下語句: SELECT * FROM Res Where cast(dateSubmit as nvarchar) ='6/17/2010 5:01:26PM'
datetime
转换为字符串,您可以指定格式。 - KM.