我在 sql 表 DateIn 中有字段,表中的日期存在,如 '01/04/2012 00:00:00'。当我在查询分析器上运行查询时 DateIn 就像“2012-04-01 00:00:00.000”一样,我正在从文本框中传递日期,例如“dd/mm/yyyy”格式但不起作用。我有一个函数,我将日期变量 Dim StrDate 作为 DateTime 从文本框传递给查询。请指导我。
问问题
951 次
1 回答
0
如果该列是,datetime
请停止认为它是以某种格式存储的,例如mm/dd/yyyy
or dd/mm/yyyy
。日期/时间值在内部存储,没有应用任何这种区域格式 - 这正是 Management Studio 向您呈现的方式。yyyymmdd
您应该使用for 日期文字编写查询,例如:
SELECT <cols>
FROM dbo.table
WHERE DateIn >= '20120601'
AND DateIn < '20120626';
如果其他用户执行,如果机器上的区域设置发生更改,或者如果您将代码移动到另一台服务器,则其他任何操作都可能无法正常工作。请参见:
还要确保您使用的是字符串分隔符。如果你说:
WHERE DateIn > 01/06/2012
这与以下内容相同:
WHERE DateIn > (1 divided by 6 divided by 2012)
由于整数数学,这会产生:
WHERE DateIn > 0
在 SQL Server 中,日期/时间为 0 '1900-01-01'
- 因此此子句将返回所有非 NULL 行。
于 2012-06-26T13:10:34.960 回答