我试图在Server 2005中执行以下查询。
SELECT *
FROM [WAGON_LOADING].[dbo].[WEIGHT_DATA]
WHERE [DATEANDTIME] BETWEEN '2013-11-7 0:00:00.000' AND '2013-11-7 23:59:59.000'查询的语法没有问题。但是,当我执行查询时,它没有显示输出(数据库只获得今天的数据,即11月7日),但是当我将查询中的日期时间更改为2013-7-11 0:00:00.000和2013-7-11 23:59:59.000时,我将得到所有的值。
有什么问题吗?
发布于 2013-11-07 12:09:05
不要依赖于从字符串到日期的隐式转换(或者任何隐式转换)。使用转换方法并指定格式。
发布于 2013-11-07 12:10:24
试试看以下几点。YYYYMMDD是Server上最可靠的字符串日期格式。
SELECT * FROM [WAGON_LOADING].[dbo].[WEIGHT_DATA]
WHERE [DATEANDTIME] >= '20131107' AND [DATEANDTIME] < '20131108'发布于 2013-11-07 12:10:04
看起来SQL Server正在按顺序解析您的日期。您可以使用SET DATEFORMAT对其中一个数字日期格式值进行配置。
服务器的默认设置由对应于当前[dateformat]的sys.syslanguages行中的语言设置列指定。
https://stackoverflow.com/questions/19835403
复制相似问题