2017-11-13 7 views
-2

"property_appointment"という名前のテーブルの列がDD/MM/YYYYの形式になっていて、デフォルトの日付と時刻の設定が間に合わない存在するデータの量に変換します。今日の日付からDD/MM/YYYYで指定された日付の範囲

今日の日付から表示する予定の範囲(日付でソート)を取得することに問題があります。つまり、今日の日付から次の6つの予定が表示されます。現在、予約されている来年の予定が表示されています。降順で日付を並べ替えるので、来週の小さな予定を見たいときには役に立ちません。今日からのアポイントメントを発表するように指示されておらず、多くのことを試しましたが、これはまだ分かりません。

これは達成が非常に難しいと私は知っていますが、上記を達成するために現在の日付形式の回避策がありますか?どんな助けでも大歓迎です!

if($properties = $db->prepare(" 
SELECT id 
    , property_address_line_1 
    , property_appointment 
    , property_appointment_type 
    FROM users 
    JOIN properties 
    ON id = property_user_id 
WHERE id = ? 
ORDER 
    BY STR_TO_DATE(property_appointment,'%d/%m/%Y') DESC 
LIMIT 6 
")) 
+1

なぜそれがはるかに消えましたか?新しい列を作成し、正しく設定し、更新を実行します。 – chris85

+2

日付を日付として格納します。これは「思い知らされない」ものです。 – Strawberry

+0

'STR_TO_DATE'の何が問題なのですか? –

答えて

1
SELECT id 
    , property_address_line_1 
    , property_appointment 
    , property_appointment_type 
    FROM users 
    JOIN properties 
    ON id = property_user_id 
WHERE id = ? 
    AND STR_TO_DATE(property_appointment,'%d/%m/%Y') > CURDATE() 
ORDER BY STR_TO_DATE(property_appointment,'%d/%m/%Y') 
LIMIT 6 
+0

これは完全に機能しました!どうもありがとうございます – darylsummers

関連する問題