当前位置:  开发笔记 > 数据库 > 正文

SQL datetime比较

如何解决《SQLdatetime比较》经验,为你挑选了2个好方法。

我想从我的表中获取一些值,其中有一些关于其datetime列的条件.

我想从我的表中获取所述城市的所有酒店值,该表名为"LocalHotels".我还应该声明两个DateTime值.第一个值应小于或等于"开始"列中酒店的值,即datetime数据类型.第二个值应该大于或等于"截止日期"列中酒店的值,也就是datetime数据类型.

datetime这两列中的所有值都以德语CultureInfo格式插入.

当我在下面陈述查询时,没有问题;

string query = "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='5.12.2015 00:00:00' AND deadline >='8.12.2015 00:00:00' ORDER BY city";

但是,当我将值的一天DateTime值从一位数改为两位数时,如下所述;

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='15.12.2015 00:00:00' AND deadline >='18.12.2015 00:00:00' ORDER BY city"

我有一个SQLException表示;

将varchar数据类型转换为日期时间数据类型会导致超出范围的值.

Иво Недев.. 10

即使在欧洲和世界各地,使用月份作为日期中三个项目中的第二个也是完全合理的.在美国,在这种情况下,显然,SQL的日期时间是MM.DD.YYYY,所以你要去的是第15个月和第18个月

因此你应该使用

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='12.15.2015 00:00:00' AND deadline >='12.18.2015 00:00:00' ORDER BY city"

要么

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='2015-12-15' AND deadline >='2015-12-18' ORDER BY city"


Tᴀʀᴇǫ Mᴀʜᴍᴏᴏ.. 5

尝试改变

15.12.2015 00:00:00 

2015-12-15 00:00:00

并且其他日期的格式也相同。



1> Иво Недев..:

即使在欧洲和世界各地,使用月份作为日期中三个项目中的第二个也是完全合理的.在美国,在这种情况下,显然,SQL的日期时间是MM.DD.YYYY,所以你要去的是第15个月和第18个月

因此你应该使用

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='12.15.2015 00:00:00' AND deadline >='12.18.2015 00:00:00' ORDER BY city"

要么

string query "SELECT * FROM LocalHotels WHERE city='LONDON' AND start <='2015-12-15' AND deadline >='2015-12-18' ORDER BY city"



2> Tᴀʀᴇǫ Mᴀʜᴍᴏᴏ..:

尝试改变

15.12.2015 00:00:00 

2015-12-15 00:00:00

并且其他日期的格式也相同。

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有