Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在两列中选择两个日期之间的记录_Sql_Sql Server_Sql Server 2005_Tsql - Fatal编程技术网

Sql 在两列中选择两个日期之间的记录

Sql 在两列中选择两个日期之间的记录,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,如何在两列中选择两个日期之间的记录 Select * From MyTable Where 2009-09-25 is between ColumnDateFrom to ColumnDateTo 我有一个日期2009-09-25,我喜欢选择时间范围列DateFrom到ColumnDateTo中的记录 样品 记录1 ColumnDateFrom=2009-08-01和ColumnDateTo=2009-10-01 记录2 ColumnDateFrom=2010-08-01和ColumnDate

如何在两列中选择两个日期之间的记录

Select * From MyTable Where 2009-09-25 is between ColumnDateFrom to ColumnDateTo
我有一个日期2009-09-25,我喜欢选择时间范围列DateFrom到ColumnDateTo中的记录

样品

记录1 ColumnDateFrom=2009-08-01和ColumnDateTo=2009-10-01

记录2 ColumnDateFrom=2010-08-01和ColumnDateTo=2010-10-01


如果我的输入日期是2009-09-28;然后我得到记录1

如果我理解正确,请尝试以下操作:

select * 
from MyTable 
where ColumnDateFrom <= '2009-09-25' 
    and ColumnDateTo >= '2009-09-25'
SELECT
    *
    FROM MyTable 
    WHERE ColumnDateFrom <= '2009-09-25' AND ColumnDateTo >= '2009-09-25'
试试这个:

SELECT * FROM MyTable WHERE '2009-09-25' BETWEEN ColumnDateFrom AND ColumnDateTo
mysql:


T-SQL之间的标准应起作用

SELECT * FROM MyTable WHERE @MYDATE BETWEEN ColumnDateFrom AND ColumnDateFrom
只需拆下它就可以了

Select * From MyTable 
Where '2009-09-25' Between ColumnDateFrom to ColumnDateTo

记住,如果列值中有日期和时间,请考虑时间PATIOMN。 假设DateOnly是从datetime列中提取时间的函数

Select * From MyTable 
Where '2009-09-25' Between DateOnly(ColumnDateFrom) 
                        To DateOnly(ColumnDateTo)

这里是ms access vba的示例

"[LearningBegin]<= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]>=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin]>= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]<=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] between " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]<=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] between " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]>=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] >= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd] between" & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] <= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd] between" & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#")

这是哪个特定的数据库引擎?您将如何将日期作为嵌入式文本(即作为SQL的一部分或作为参数)传递给SQL?您使用什么客户机框架与数据库通信?基本上你的问题是什么?SQL语法?如何用C或php或其他语言编写?还是怎样因为,就想法而言,你是对的,除了写日期的语法是错的,但我需要知道你用哪个数据库引擎来告诉你什么是对的。很好,但我更喜欢。。。从MyTable中选择*,其中ColumnDateFrom和ColumnDateTo之间的“2009-09-25”非常感谢您的快速响应…非常好!我现在做完了,可以回家了。。。祝大家周末愉快!我从不使用BETWEEN,我发现它更容易阅读>=,>,这个对日期列的函数调用将阻止任何索引的使用,不是吗?
"[LearningBegin]<= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]>=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin]>= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]<=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] between " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]<=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] between " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd]>=" + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] >= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd] between" & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#") + _
" or [LearningBegin] <= " & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and [LearningEnd] between" & Format(eFilterBegin.Value, "\#mm\/dd\/yyyy\#") + " and " + Format(eFilterEnd.Value, "\#mm\/dd\/yyyy\#")