【问题标题】:filter column based on date range根据日期范围过滤列
【发布时间】:2016-11-25 05:59:46
【问题描述】:

我需要按日期范围过滤包含时间和日期的列。 我只想看看从今天开始一个月记录的值。(从2016-06-21到2016-07-21) Column 中的日期格式为 YYYY-mm-dd HH:mm:ss 该列中的一些数据如下所示:

2016-07-01 13:38:04
2016-07-01 12:52:41
2016-07-01 12:52:41
2015-05-30 13:04:42
2015-05-30 13:04:42
2016-06-29 10:23:39
2016-06-29 10:23:39
2016-06-29 09:49:43
2015-05-29 09:49:20
2015-05-28 15:05:11
2016-05-28 15:04:46
2016-06-28 15:00:43
2016-05-30 11:33:42
2016-05-30 11:30:53
2015-05-02 09:54:34

【问题讨论】:

  • 请添加您在问题中所指的一些表格行。这样有助于更好地理解需求。

标签: mysql sql date select where


【解决方案1】:

你可以这样做:

select t.*
from t
where col >= date_sub(curdate(), interval 1 month);

无论您的列是存储为字符串还是datetime,这都应该有效,因为格式很容易转换为datetime。但是,您应该对日期和时间使用本机类型,而不是字符串。

【讨论】:

  • date_sub 是 SQL 2014 的内置函数吗?
  • @UTTARA 。 . .不,它是 MySQL 中的一个函数,用于标记问题。
【解决方案2】:

这里有一些你可以使用的:-

SELECT * 
 FROM drange_table 
 Where date_range_column between DATE_SUB(curdate(), interval 1 month) and curdate()

【讨论】:

    猜你喜欢
    • 2020-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-03-09
    • 2011-12-04
    • 1970-01-01
    相关资源
    最近更新 更多