mysql - 如何计算当前和以前的日期?

标签 mysql

例如 MySQL NOW() 返回 2013-01-09 12:20:06,所以我需要按照下面指定的方式计算所有行数。

电流:

  • 时间:从 2013-01-09 12:00:00 到 NOW()
  • 日期:从 2013-01-08 00:00:00 到 NOW()
  • 月份:从 2013-01-01 00:00:00 到 NOW()

上一个

  • 时间:2013-01-09 11:00:00 - 2013-01-09 12:00:00
  • 日期:2013-01-08 00:00:00 - 2013-01-08 23:59:59
  • 月份:2012-12-01 00:00:00 - 2013-01-01 00:00:00

我试过类似的方法:

WHERE
    `date` >= DATE_FORMAT(NOW(), '%Y-%m-%d %h:00:00')
AND `date` >= DATE_SUB(
    DATE_FORMAT(NOW(), '%Y-%m-%d %h:00:00'),
    INTERVAL 10 MONTH
)

但是有没有更方便的方法呢?

最佳答案

试试这个:

当前:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00');
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00');
SELECT DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00');

对于上一个:

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00'), DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d %H:00:00'), INTERVAL 1 HOUR);
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00'), DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d 00:00:00'), INTERVAL 1 DAY);
SELECT DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00'), DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-01 00:00:00'), INTERVAL 1 MONTH);

检查此链接 SQL FIDDLE DEMO

关于mysql - 如何计算当前和以前的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14233174/

相关文章:

python - 如何在Python中填写插入语句的列名

php - 循环进入 PHP 数组,然后循环进入 SQL 插入...或其他不同的方式...请帮忙

mysql - Node 数据库查询不工作;

mysql - 某些条件下的独特 varchar

mysql - 在 MySQL 中正确存储电子邮件(额外/非必要) header 作为 JSON

php - PHP 中的 undefined variable 错误

mysql - mySQL 查询的正则表达式问题

php - 从php调用mysql存储过程时出现错误

MySQLdump 与 WINDOWS10 : OS errno 13 - (Permission denied) when executing 'SELECT INTO OUTFILE'

php - 使用 php 从存储过程中获取列名以在 html 表中显示