【问题标题】:SQL - Selecting rows within a date range?SQL - 选择日期范围内的行?
【发布时间】:2019-09-05 16:59:58
【问题描述】:

我正在尝试选择日期范围内的所有行,包括开始日和结束日 -

例如

Select *
from table
where timestamp between 2019-03-01 and 2019-03-08

我想要 2019-03-01 和 2019-03-08 的所有行以及这两个日期之间的所有行

谢谢

【问题讨论】:

  • 变量必须用单引号括起来,你的时间戳列是什么类型的数据?
  • 谢谢,这是我通常用日期辨别的时间戳列
  • “两个日期之间的所有行也是如此”是什么意思?它应该按时间戳排序吗????清除它

标签: sql date timestamp presto


【解决方案1】:

您应该使用 date() 作为时间戳和日期值周围的正确引用

SELECT * 
FROM tbl_recordings 
WHERE date(timestamp)  
          between  str_to_date('2019-03-01', '%Y-%m-%d')
              and   str_to_date('2019-03-08', '%Y-%m-%d');

SELECT * 
FROM tbl_recordings 
WHERE date(timestamp) between '2019-03-01'  and   '2019-03-08';

【讨论】:

  • 如果我使用介于两者之间的后者,它是否还会包括外部日期的行,例如 3-1 和 3-8? @scaisEdge
  • BETWEEN 始终具有包容性。这意味着它将包括直到2019-03-08 00:00:00.000
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 2011-01-05
相关资源
最近更新 更多