-2

我在 sql 表 DateIn 中有字段,表中的日期存在,如 '01/04/2012 00:00:00'。当我在查询分析器上运行查询时 DateIn 就像“2012-04-01 00:00:00.000”一样,我正在从文本框中传递日期,例如“dd/mm/yyyy”格式但不起作用。我有一个函数,我将日期变量 Dim StrDate 作为 DateTime 从文本框传递给查询。请指导我。

4

1 回答 1

0

如果该列是,datetime请停止认为它是以某种格式存储的,例如mm/dd/yyyyor 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 回答