DateTime在SQL Server中不工作

本文关键字:工作 Server SQL DateTime | 更新日期: 2023-09-27 18:03:02

从我的数据库中,我试图获取特定日期后的所有记录。为此,我使用查询

SELECT * 
FROM Events_tbl 
WHERE lastupdated > '07-18-2011' and Venue=8

这段特殊的代码在我的本地主机上工作。但是当我上传到服务器时,它没有返回任何东西。有人能帮忙吗?

我真的卡住了。

在我的SQL Server数据库中,datetime的值是
2011-07-19 19:37:50.727

我在英国使用pipeten服务器。我正在研究asp.net c#

谢谢

DateTime在SQL Server中不工作

我建议您首先不要为查询使用文本格式-使用参数化查询并将参数值指定为DateTime。这样你就完全不需要担心格式问题了,而且你的代码和你的数据也保持了距离。

您没有理由在这里执行到文本或从文本的转换-所以不要这样做。

(这适用于所有数据值,顺便说一下-参数化查询还有助于保护您免受SQL注入攻击。)

使用ISO日期格式(YYYYMMDD),它在所有语言中都是安全的

SELECT * from Events_tbl where lastupdated > '20110718' and Venue=8

where子句中的日期是美国日期格式,但您的服务器位于英国。因此需要交换子句中的月份和日期。在英国,是dd/mm/yyyy而不是mm/dd/yyyy

很可能您的本地机器本地化与服务器本地化不同,也请查看您通过使用字符串字面量发出的请求。您的列是varchar格式,还是DateTime格式?

顺便说一下,处理日期时间值总是使用特殊的操作数/函数。如:

Msdn: DateTime

问候。