2016-10-05 14 views
1

私は日付がかなり悪いです。MySQLでのDateTime操作

私は、HoraRegistratBBDDというOF DateTime型の1つのフィールドを持つmysqlテーブルを持っています。

私がしたいことは、特定の日のデータ(あらゆる種類のデータ)を選択することです。これまでのところ、私はこれをやっていました:

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年9月2日午前10時28分41秒

を私はそれから15時間を減算するたいと思います。私はそれが実際に

2016年9月1日午後7時28分41秒

私は私のクエリはので、その日(私はそれから時間を減算する必要ということだろう考えるとどのように行うことができますように、この値を扱うしたいことを意味時々変わる)?

+1

いくつかのアドバイス。質問を投稿する前にいくつかの調査をしてみてください。私は1つの単一のGoogle検索から10の本当に良い結果を得ました。一例:http://stackoverflow.com/questions/6020162/how-to-subtract-3-hours-from-a-datetime-in-mysql – Traveller

答えて

2

あなたは、あなたがDATE_SUBを使用することができ、HoraRegistratBBDD列から15時間を減算する場合:

SELECT mydata FROM mytable 
WHERE DATE_SUB(HoraRegistratBBDD, INTERVAL 15 HOUR) = ... 
1
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;