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\#")