【问题标题】:DateTime operation with MySQL使用 MySQL 进行 DateTime 操作
【发布时间】:2017-02-13 14:05:12
【问题描述】:

我不喜欢约会。

我有一个 mysql 表,其中一个字段是 OF DateTime 类型,称为 HoraRegistratBBDD。

我想做的是选择特定日期的数据(任何类型的数据)。到目前为止,我正在这样做:

SELECT COUNT(*)
FROM
(
    SELECT mydata
    FROM mytable
    WHERE DATE(`HoraRegistratBBDD`) = '".$fecha."' AND
          FetOPerdutIMotiu = '1'
    GROUP BY Partit,
             mydata
) AS Col;

其中 $fecha 类似于“2016-09-03”。这行得通。

但是我有一个问题。当我的 HoraRegistratBBDD 有(例如)这个值时:

2016-09-02 10:28:41

我想从中减去 15 个小时。这意味着我想把这个值当作它实际上是

2016-09-01 19:28:41

考虑到我想从中减去小时数(因此,有时一天会改变),我该如何进行查询?

【问题讨论】:

标签: mysql datetime


【解决方案1】:

如果要从HoraRegistratBBDD 列中减去 15 小时,则可以使用 DATE_SUB

SELECT mydata FROM mytable
WHERE DATE_SUB(HoraRegistratBBDD, INTERVAL 15 HOUR) = ...

【讨论】:

    【解决方案2】:

    您要查找的函数是 DATE_SUB。

    这里有几个链接:

    http://www.w3schools.com/sql/func_date_sub.asp

    How to subtract 3 hours from a datetime in MySQL?

    第一个向您展示了它是如何工作的,另一个是类似的问题,并且已经得到解答。

    【讨论】:

      【解决方案3】:
          SELECT COUNT(*)
          FROM
          (
              SELECT mydata, DATE_FORMAT(HoraRegistratBBDD,'%Y-%m-%d') AS niceDate
              FROM mytable
              WHERE 
                    FetOPerdutIMotiu = '1'
              HAVING niceDate = '".$fecha."'
              GROUP BY Partit,
                       mydata
          ) AS Col;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多