特に「日」、「月」、「年」という名前の3つの列を持つMySQLテーブル(A)があり、それぞれに数字が格納されており、一緒に読み取ると日付を表します。このテーブルを、日付列が UNIX 形式の別のテーブル (B) と結合する必要があります。2 つのテーブルの 2 つの日付を簡単に比較できる簡単な方法はありますか?
質問する
3962 次
2 に答える
2
フィールドの接続で値を管理できます
SELECT CONCAT(year, '-', month, '-', day) as u_date ...
また
SELECT ... WHERE CONCAT(A.year, '-', A.month, '-', A.day) > B.another_field
など..。
于 2012-07-22T19:54:25.490 に答える
2
できるよ:
SELECT *
FROM tbl a
INNER JOIN tbl b
ON UNIX_TIMESTAMP(CAST(CONCAT(a.year, '-', a.month, '-', a.day) AS DATETIME)) = b.unixtimecol
ただし、のUNIXタイムスタンプ列tableB
は秒に対してより正確ですが、の列はその日に対してtableA
のみ正確にすることができます。その結果、必要なときに常に参加するとは限りません。
2つの時間が同じ日にある場所に参加させたい場合は、unix時間列をDATE
タイプにして、両方がその日にのみ正確になるようにすることもできます。
SELECT *
FROM tbl a
INNER JOIN tbl b
ON CAST(CONCAT(a.year, '-', a.month, '-', a.day) AS DATE) = DATE(FROM_UNIXTIME(b.unixtimecol))
于 2012-07-22T19:54:50.023 に答える