2

私は次のことをしようとしています:私のデータベースには、それぞれに時間のある行があります(time()関数を使用)。例: 1380300397. ここで、現在の日付から行を取得するクエリを作成したいと思います。このクエリを試してみましたが、成功しませんでした:

SELECT `id`,DATE_FORMAT(`time`, '%Y-%m-%d') FROM `facts` 
WHERE `app` = 1 AND DATE(`time`) = CURDATE()

私は何を間違っていますか?ありがとう!

4

3 に答える 3

4
AND DATE(FROM_UNIXTIME(time)) = CURDATE()
于 2013-09-27T17:19:02.577 に答える
1

NOW()代わりに使用してみることができますCURDATE

于 2013-09-27T17:13:24.290 に答える
0

私の意見では、これが最善の方法です。一見するとオーバーヘッドのように見えますが、この方法では列に関数を適用していないため、列にインデックスがある場合はクエリでインデックスを使用できますtime

SELECT 
    `id`, DATE_FORMAT(`time`, '%Y-%m-%d')
FROM
    `facts`
WHERE
    `app` = 1
        AND `time` >= UNIX_TIMESTAMP(CONCAT(CURDATE(), ' 00:00:00'))
        AND `time` < UNIX_TIMESTAMP(CONCAT(DATE_ADD(CURDATE(), INTERVAL 1 DAY),
                    ' 00:00:00'))
于 2013-09-27T17:24:31.453 に答える