gpt4 book ai didi

sql - 从两个日期和时间之间的日期范围中选择数据

转载 作者:行者123 更新时间:2023-12-03 08:08:00 26 4
gpt4 key购买 nike

我有与此处记录的完全相同的问题
Select data from date range between two dates

但是当我使用给定的解决方案时,它对我不起作用。唯一的区别是我的表的一栏中有日期和时间。因此,我希望能够返回日期范围内的所有值

到目前为止,我有这个但没有用

SELECT * FROM aview 
WHERE startDate BETWEEN ('2017-11-25 11:27:00.000', '2018-11-25 11:27:00.000') OR
leftdate BETWEEN ('2017-11-25 11:27:00.000', '2018-11-25 11:27:00.000') OR
start_Date <= '2017-11-25 11:27:00.000' AND left_dept_date >= '2018-11-25 11:27:00.000'

最佳答案

我从未在SQL查询中将BETWEEN(from,to)视为一种模式-当它无法正常工作时,您就使它看起来像类似于SUBSTRING(column, index)的函数调用。尝试这个:

SELECT * FROM aview 
WHERE
startDate BETWEEN CONVERT(datetime, '2017-11-25 11:27:00.000', 121) AND CONVERT(datetime, '2018-11-25 11:27:00.000', 121) OR
leftdate BETWEEN CONVERT(datetime, '2017-11-25 11:27:00.000', 121) AND CONVERT(datetime, '2018-11-25 11:27:00.000', 121) OR
start_Date <= CONVERT(datetime, '2017-11-25 11:27:00.000', 121) AND left_dept_date >= CONVERT(datetime, '2018-11-25 11:27:00.000', 121)

当列是正确的日期时,此查询没有语法错误(请参见 http://sqlfiddle.com/#!6/9eecb7db59d16c80417c72d1e1f4fbf1/16114),因此剩下的唯一是 View 代码中的缺陷,对数据进行了转换(例如,如果您的 View 正在转换字符串“12”/31/2017”转换为日期,但就好像是“dd/mm/yyyy”一样,或者将年份中有错别字的“2107-12-31”转换为一个不包含日期的smalldatetime类型支持2079年以后的年份

参见 https://docs.microsoft.com/en-us/sql/t-sql/language-elements/between-transact-sql

关于sql - 从两个日期和时间之间的日期范围中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47812532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com