0

我正在尝试在 SQL 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.000AND时,2013-7-11 23:59:59.000我得到了所有值。

可能是什么问题呢 ?

4

4 回答 4

2

永远不要依赖从字符串到日期的隐式转换(或任何隐式转换,就此而言)。使用转换方法并指定格式。

于 2013-11-07T12:09:05.377 回答
1

试试下面的。YYYYMMDD 是 SQL Server 上最可靠的字符串日期格式。

SELECT * FROM [WAGON_LOADING].[dbo].[WEIGHT_DATA] 
WHERE [DATEANDTIME] >= '20131107' AND [DATEANDTIME] < '20131108'
于 2013-11-07T12:10:24.843 回答
0

看起来 SQL Server 正在无序地解析您的日期。您可以使用SET DATEFORMAT其中一种数字日期格式值来配置它。

服务器的默认设置由与当前语言设置[dateformat]对应的行中的列指定。sys.syslanguages

于 2013-11-07T12:10:04.587 回答
0

像这样试试

SELECT * 
FROM PURCHASE 
WHERE OrderDate >='2004-03-01  00:00:00.000' AND OrderDate < '2004-04-01  00:00:00.000' 
于 2013-11-07T12:18:07.230 回答