提取特定日期时间范围内的数据#Teradata

时间:2019-03-13 09:11:41

标签: teradata

我在Teradata中有一个日期时间字段,其数据为1/01/2019 02:13:08。 我需要提取特定时间范围(例如1/01/2019和1/02/2019之间)的数据 晚上9点至凌晨6点之间的时间间隔类似于1/01/2019 21:00:00到1/02/2019 6:00:00之间的时间范围。

这如何实现。

谢谢

1 个答案:

答案 0 :(得分:1)

听起来您只希望插入在两个日期之间的晚上时间插入的记录。晚上定义为“晚上9点至早上6点之间”

SELECT * FROM table
WHERE 
  datecol BETWEEN '2019-01-01' AND '2019-02-01' AND
  NOT (EXTRACT(HOUR FROM datecol) BETWEEN 6 AND 21)

第一个谓词从日期范围中获取所有数据,第二个谓词排除介于上午6点至晚上9点之间的记录,即,它排除了所有白天的记录,仅保留了夜间的记录

如果您的查询更简单,那么您实际上只希望从2019-01-01的9pm到2019-02-01的6am之间的记录,然后查询:

SELECT * FROM table
WHERE 
  datecol BETWEEN '2019-01-01 21:00' AND '2019-02-01 06:00'

请注意,当您在SO上提问时,您的受众群体是国际性的,而且帖子中还不清楚您的约会日期是dd/mm/yyyy还是mm/dd/yyyy。我假设使用dd/mm/yyyy,但您将来可能会考虑将格式切换为yyyy-mm-dd ,因为这是一种不明确的ISO格式。如果您问题中的日期格式为mm/dd/yyyy,则您需要根据需要调整我的查询,因为我的查询是“一月全部”,但是如果您的意思是mm/dd,那么您正在寻找“从1月1日到1月2日过夜”