SQL查询问题
问题描述:
我想比较两个日期和时间彼此和 我想选择“StartTime”大于现在时间和“StartDate”大于现在日期的记录。SQL查询问题
但输出不正确。提前感谢。 我tabale'records是:
StartDate StartTime
-------------------------------
1389/07/11 11:04
1389/06/23 21:17
1389/06/23 21:32
1389/06/23 22:10
1389/06/26 12:34
1389/06/27 17:29
1389/06/27 18:13
1389/06/27 20:27
1389/06/28 09:41
1389/07/18 10:46
1389/07/05 22:00
1389/07/15 24:00
输出为: 当查询是:(1)
SELECT StartDate, StartTime
FROM Proj
WHERE (StartDate < '1389/07/15 ') AND (StartTime <= '20:20 ')
StartDate StartTime
-------------------------------
1389/07/11 11:04
1389/06/26 12:34
1389/06/28 09:41
1389/07/18 10:46
输出为: 当查询是:(2)
SELECT StartDate, StartTime
FROM Proj
WHERE (StartDate > '1389/07/15 ') AND (StartTime >= '20:20 ')
StartDate StartTime
-------------------------------
NULL NULL
正确的输出应该是:
StartDate StartTime
-------------------------------
1389/07/18 10:46
我使用波斯日期。
答
它解决了:
SELECT StartDate, StartTime
FROM Proj
WHERE (StartTime < '20:20 ') AND (StartDate = '1389/07/15') OR
(StartDate > '1389/07/15')
答
只是把你所拥有的上述和你的问题的说明,查询应该是:
select * from test where date>'2010/10/05' and time>='20:22'
如果你发布你的问题和架构中,你的工作,我们会更多的细节能够帮助你更多。
答
我想选择记录“时间”大于现在时间和“日期”大于现在约会。
首先要获取当前的日期时间(您现在),您可以使用SQL函数GETDATE()
。 所以,如果你碰巧有一个datetime
栏你可以只是做
SELECT * FROM Test WHERE LogDateTime >= GETDATE()
这将在表测试其中LogDateTime塔内的日期时间值是在未来返回每个记录。
现在,虽然它有点复杂,但将日期和时间拆分为单独的列时可以使用相同的功能。
SELECT * FROM Test
WHERE CONVERT(datetime, LogDate + ' ' + LogTime) >= GETDATE()
如果LOGDATE或LOGTIME是空列,你可以使用ISNULL(<columnName>, <defaultvalue>)
是安全的。
你能给表模式?并查询时间小于或等于20:22。 – Sascha 2010-10-05 16:58:31
运营商应该是“>”我是对吗? – bla 2010-10-05 16:59:52
也许说明明显但日期和时间是保留的sql关键字,你的错误是什么?你有没有尝试过“select * from test where [date]''2010/10/05'and [time] kd7 2010-10-05 17:00:07