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注入攻击。)
使用ISO日期格式(YYYYMMDD),它在所有语言中都是安全的
SELECT * from Events_tbl where lastupdated > '20110718' and Venue=8
where子句中的日期是美国日期格式,但您的服务器位于英国。因此需要交换子句中的月份和日期。在英国,是dd/mm/yyyy而不是mm/dd/yyyy
很可能您的本地机器本地化与服务器本地化不同,也请查看您通过使用字符串字面量发出的请求。您的列是varchar格式,还是DateTime格式?
顺便说一下,处理日期时间值总是使用特殊的操作数/函数。如:Msdn: DateTime
问候。