繁体   English   中英

在SQL中获取有关一个月中一天中特定时间的数据

[英]get data on particular timings of the day in a month in SQL

如何获取过去一个月的上午6点至上午9:15之间发布票证的时间范围的数据。 我试过了但是错了,它在oracle和to_char中不是SQL中的函数名。 我该如何在sql中做到这一点。

select * 
  from [ICPS].[dbo].[tickets]
 where t_date_time_issued > sysdate - 30
   and to_char(t_date_time_issed, 'hh24:mi:ss') >= '06:00:00' 
   and to_char(t_date_time_issued, 'hh24:mi:ss') <= '09:15:00' 

您可以使用to_timestamp()代替to_char 有关to_timestamp()详细信息是: http : to_timestamp()

希望会有所帮助!

假设您希望在SQL-Server中使用它(“在oracle中它是datetme ,在SQL中不是函数名”),则可以将datetmetime

SELECT * 
FROM   [dbo].[tickets] 
WHERE  t_date_time_issued > DATEADD(mm, - 30, GetDate()) 
AND Cast(t_date_time_issued as TIME) between '06:00' and '09:10'

演示版

尝试这个:

SELECT
    *
FROM
    [ICPS].[DBO].[tickets]
WHERE
    t_date_time_issued BETWEEN add_months(TRUNC(SYSDATE, 'MM'), - 1) AND (
        TRUNC(SYSDATE, 'MM') - (1/24/60/60))
AND TO_CHAR(t_date_time_issed, 'HH24:MI:SS') >= '06:00:00'
AND TO_CHAR(t_date_time_issed, 'HH24:MI:SS') <= '09:15:00'
SELECT * 
    FROM  [ICPS].[dbo].[tickets]
    WHERE   convert (datetime,t_date_time_issued,101) 
          between convert(datetime,'2013/11/01',101) and convert (datetime,'2013/12/04',101)
    AND datepart(hour,t_date_time_issued) between '06' and '09'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM