0

特に「日」、「月」、「年」という名前の3つの列を持つMySQLテーブル(A)があり、それぞれに数字が格納されており、一緒に読み取ると日付を表します。このテーブルを、日付列が UNIX 形式の別のテーブル (B) と結合する必要があります。2 つのテーブルの 2 つの日付を簡単に比較できる簡単な方法はありますか?

4

2 に答える 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 に答える