如何获得最近更多的时间
我一直在试图让SQL Server中的最近的更大的时候,我已经在我的表,这些数值称为TIMETEST
与列ID
和Ti
:如何获得最近更多的时间
ID Ti
---------------
1 01:00:00
2 03:09:00
3 07:00:00
4 12:00:00
当我尝试
SELECT TOP 1 *
FROM TIMETEST
WHERE ('1:59' < Ti)
它返回 “3点09分00秒”,这是正确的,但是当我尝试
SELECT TOP 1 *
FROM TIMETEST
WHERE ('12:00:00' < Ti)
我应该得到“01:00:00”,但它返回一个空列。
24小时和12小时?
试试这个,而不是拿到1 AM
SELECT TOP 1 * FROM TIMETEST WHERE ('00:00:00' < Ti) ORDER BY Ti
如果你想通过12个小时的时间,然后将需要一些更多的逻辑做,但你必须在特定时期上午或下午。
两件事。首先,你需要ORDER BY
。几乎在任何情况下,当你有TOP
时,你应该使用ORDER BY
。所以:
SELECT TOP 1 *
FROM TIMETEST
WHERE '1:59' < Ti
ORDER BY Ti ASC
其次,如果列不是time
数据类型,那么,比较完成的字符串。为了安全起见,你可以强制不断的转换:一次我能使用24小时时间 我增加了一个名为DOW列,这意味着做
SELECT TOP 1 *
FROM TIMETEST
WHERE CAST('1:59' as TIME) < Ti
ORDER BY Ti ASC
感谢您的回答。我从来没有听说过演员,但看到你的回答让我觉得我可以在没有任何其他解释的情况下使用它。 – Collins
感谢@马特一周中的一天和我正在使用Android代码。
所以,如果我尝试:Select * from TIMETEST Where Ti > '12:00:00' AND DOW = 'Tuesday' ORDER BY Ti
和我得到一个空集表示有含12:01:00和我的Android代码之间23:59:00时间会自动更改查询中没有列 下一工作正常的日子。 Select * from TIMETEST Where Ti > '00:00:00' AND DOW = 'Wednesday' ORDER BY Ti
感谢您的回答。
任何需要Android代码的人都应该发表评论,我会将其添加到答案中
您的时间值采用24小时格式。所以1:00:00是凌晨1点,不得超过12:00:00。 – BJones