我有两个smalldatetime列的表,其中一个是startTime,另一个是endTime。 我需要从表中选择所有值,两列之间的时间与getdate()'时间相比。
我正在使用SQL-Server 2005。
例如
选择getdate()给出2/2 / 03 21:40 时间是唯一重要的因素
所以我需要得到2和3
提前致谢
答案 0 :(得分:1)
怎么样
SELECT *
FROM TABLE
WHERE getdate() BETWEEN startDate AND endDate
修改强>
你应该在这个链接上找到一个
并尝试Date/Time Conversions Using SQL Server
之类的内容DECLARE @Table TABLE(
startDate smalldatetime,
endDate smalldatetime,
value1 int
)
INSERT INTO @Table SELECT '02 Feb 2010 16:01', '02 Feb 2010 18:00', 1
INSERT INTO @Table SELECT '02 Feb 2010 21:00', '02 Feb 2010 22:00', 2
INSERT INTO @Table SELECT '02 Feb 2010 05:00', '02 Feb 2010 22:00', 3
DECLARE @MyGetDate DATETIME
SELECT @MyGetDate = '2 Mar 2003 21:40'
SELECT *
FROM @Table
WHERE convert(varchar, @MyGetDate, 14) BETWEEN convert(varchar, startDate, 14) AND convert(varchar, endDate, 14)
答案 1 :(得分:1)
SELECT value1
FROM tableA
WHERE CONVERT(varchar, GETDATE(), 108)
BETWEEN CONVERT(varchar, Table_1.StartDate, 108)
AND CONVERT(varchar, Table_1.EndDate, 108);
应该做的伎俩
答案 2 :(得分:0)
和CONVERT(varchar,Table.column,113) 2016年6月6日星期四14:00:00:000'和'2016年6月7日08:00:00:000'
答案 3 :(得分:0)
如果这可能对任何人都有帮助,我正在提供一种我用来获取所述值的解决方案-
我的表'mw_shift'看起来像这样-
注意:“ ftime”和“ ttime”列的时间为TIME(数据类型)
现在,以下选择命令将为您提供所需的值-
select name from mw_shift where CONVERT(time,'10:32:00') between ftime and ttime
select name from mw_shift where CONVERT(time,'20:32:00') between ftime and ttime
select name from mw_shift where CONVERT(time,'00:32:00') between ftime and ttime