如何获取特定日期SQL查询的特定时间

时间:2013-12-16 02:23:22

标签: sql datetime

我希望做类似于Simple DateTime sql query的事情,但有所不同:我想在今天的日期指定时间(早上7点)。

我想计算当时符合条件的记录数量:

SELECT COUNT(SEQNO)    
FROM TABLE    
WHERE [CRITERIA]     
and [datetimecolumn] between (datetime=[today's date]at 7.00am)
and (datetime=[today's date]at 10.00am)

我可以单独使用日期,但时间让我感到困惑。

2 个答案:

答案 0 :(得分:1)

不确定这是否会对您有所帮助,因为我认为早上7点和上午10点会保持原样。

============================================

BETWEEN 语法应该是这样的

mysql> SELECT * FROM employee_tbl 
    -> WHERE daily_typing_pages BETWEEN 170 AND 300; 

Credited to this site

所以你的代码应该是:(请包括datetimecolumn的括号)

and ([datetimecolumn] between CONCAT( CURDATE(),  " 07:00:00" )
and CONCAT( CURDATE() ,  " 10:00:00" )

答案 1 :(得分:1)

试试这个

 Declare @i date=getdate()
Declare @j varchar(10)='07:00' 
Declare @k varchar(10)= '10:00:00' 

select COALESCE(COUNT(DISTINCT SOH.SEQNO),0) from dbo.SALESORD_HDR SOH 
inner join SALESORDHIST SOHIS on SOH.SEQNO = SOHIS.HEADER_SOURCE_SEQ 
where SOHIS.HISTDATETIME between ( DATEADD(day, DATEDIFF(day, 0, @i), @j)
and DATEADD(day, DATEDIFF(day, 0, @i), @k))
and SOHIS.EVENT_TYPE = 'I'