【发布时间】:2023-03-02 22:56:01
【问题描述】:
如何从mysql表中选择过去日期到当前日期的数据?例如,选择从 2009 年 1 月 1 日到当前日期的数据??
我的列“datetime”是 datetime 日期类型。请帮忙,谢谢
编辑:
如果假设我想获取 2009 年 1 月 1 日以来的每日数据,如何编写查询?使用 count 和 between 函数?
【问题讨论】:
如何从mysql表中选择过去日期到当前日期的数据?例如,选择从 2009 年 1 月 1 日到当前日期的数据??
我的列“datetime”是 datetime 日期类型。请帮忙,谢谢
编辑:
如果假设我想获取 2009 年 1 月 1 日以来的每日数据,如何编写查询?使用 count 和 between 函数?
【问题讨论】:
select * from *table_name* where *datetime_column* between '01/01/2009' and curdate()
或使用>= 和<=:
select * from *table_name* where *datetime_column* >= '01/01/2009' and *datetime_column* <= curdate()
【讨论】:
您可以使用now() 喜欢:
Select data from tablename where datetime >= "01-01-2009 00:00:00" and datetime <= now();
【讨论】:
以上所有方法都有效,如果您只想返回天数/时间而不是输入日期,这是另一种方法
select * from *table_name* where *datetime_column* BETWEEN DATE_SUB(NOW(), INTERVAL 30 DAY) AND NOW()
【讨论】:
迟到的答案,但接受的答案对我不起作用。
如果您手动设置开始日期和结束日期(不使用curdate()),请确保在结束日期指定小时、分钟和秒 (2019-12-02 23:59:59),否则您将不会得到任何信息那天的结果,即:
这将包括来自2019-12-02的记录:
SELECT *SOMEFIELDS* FROM *YOURTABLE* where *YOURDATEFIELD* between '2019-12-01' and '2019-12-02 23:59:59'
这不会包含来自2019-12-02的记录:
SELECT *SOMEFIELDS* FROM *YOURTABLE* where *YOURDATEFIELD* between '2019-12-01' and '2019-12-02'
【讨论】: