SQL获取日期范围

时间:2019-04-15 05:02:16

标签: sql-server vb6

如何使用ff日期范围(从-到)获取所需的数据?我数据库中的日期具有不同的格式:m / d / yyyy和mm / dd / yyyy。我需要使用日期选择器提供的日期范围来获取这些日期。这是我的SQL查询:

sql = "SELECT * FROM CIC_1047 WHERE (DOL >= '" & FormatToDate(dtFrom.value) 
AND DOL <= '" & FormatToDate(dtTo.value) & "') OR (DOL >= '" & FormatToDate2(dtFrom.value) & "' AND DOL <= '" & FormatToDate2(dtTo.value) & "') OR (DOL >= '" & FormatToDate3(dtFrom.value) & "' AND DOL <= '" & FormatToDate3(dtTo.value) & "') OR (DOL >= '" & FormatToDate4(dtFrom.value) & "' AND DOL <= '" & FormatToDate4(dtTo.value) & "') ORDER BY DOL asc, Name"

FormatToDates是我的日期函数。

1 个答案:

答案 0 :(得分:0)

内部,SQL Server日期存储为2个整数。第一个整数是基准日期(1900/01/01)之前或之后的日期数。第二个整数存储午夜之后的时钟滴答数,每个滴答为1⁄300秒。 负数表示日期早于1900年1月1日。

示例:日期2013-10-02 12:00:00存储为数字41547.5

将日期选择器的日期格式设置为ISO-8601格式,然后尝试以下操作:

sql = "SELECT * FROM CIC_1047 WHERE DOL >= '" & FormatToIsoDate(dtFrom.value) & "' AND DOL <= '" & FormatToIsoDate(dtTo.value) & "'"

https://www.sqlserver-dba.com/2015/04/how-to-use-iso-8601-for-date-and-datetime.html