この行からエラーが出ます
SELECT table.field
FROM table
WHERE table.month = 'october'
AND DATEDIFF(day, table.start_date, table.end_date) < 30
私の列の日付はm-d-yyの形式です
これを別の形式に変換する必要がありますか?もしそうなら?
MariaDBの使用
MariaDBのドキュメントによると DATEDIFF
はtwo引数のみを受け取ります:
構文
DATEDIFF(expr1,expr2)
説明
DATEDIFF()
は、ある日付から別の日付までの日数で表される(expr1 – expr2)
を返します。expr1
およびexpr2
は、日付または日付と時刻の式です。値の日付部分のみが計算に使用されます。
@alex_b DATEDIFF関数とTIMESTAMPDIFF関数の構文を混同することは非常に一般的な観察です。次の link は確かにDATEDIFFの構文に役立ちます このページ は、MariaDBの親MySQLで使用可能な他のすべての日付関連関数を一覧表示します。\
上記のリンクを参照すると、概要が表示されます-
TIMEDIFF(expr1,expr2)
expr1 - '2000:01:01 00:00:00'
expr2 - '2000:01:01 00:00:00.000001'
TIMEDIFF()は、時間値として表現されたexpr1 − expr2を返します。 expr1とexpr2は時刻または日付と時刻の式ですが、どちらも同じ型でなければなりません。
DATEDIFF(expr1,expr2)
expr1 - '2007-12-31 23:59:59'
expr2 - '2007-12-30'
DATEDIFF()は、ある日付から別の日付までの日数で表されるexpr1 − expr2を返します。 expr1およびexpr2は、日付または日付と時刻の式です。値の日付部分のみが計算に使用されます。
以下は私がそれを使用したシナリオです-
SET output_date = DATEDIFF(CURDATE()、input_date)、...上記でうまくいきました。幸運を!