DATEDIFFを使用するには?二つの日付の内部でどのように多くの日です
質問
どのようにDATEDIFFを使用するには?どのように私はこれが機能することができますか?または私はcompletly違っDATEDIFFを使用する必要がありますか?
SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';
私は答えを取得しようと、二つの日付の内部で何日あります。
私は次のようにaswerを取得したいと思います。
期間= 7日;
私は、データベースのこの種を持っています:
スタート| will_end
2009年12月17日| 2009-12-24
2009年12月12日| 2009年12月26日
解決
まず入れwill_end
、二started
ます:
SELECT DATEDIFF('2009-12-24', '2009-12-17')
---
7
また、あなたのフィールド名から単一引用符を削除します:
SELECT DATEDIFF(will_end, started) AS Duration
FROM my_table
WHERE id = 110
、またはバッククォートでそれらを置き換えます:
SELECT DATEDIFF(`will_end`, `started`) AS `Duration`
FROM `my_table`
WHERE `id` = 110
他のヒント
あなたはNULL
結果を得ていますか?あなたが列の値ではなく、'Started '
するために、文字列の'will_end'
とDATEDIFF
を渡していることを意味クエリ、単一引用符で列名を持っています。単一引用符を削除してください、あなたはいくつかの結果を見て開始します。
SELECT DATEDIFF(Started, will_end) AS Duration FROM my_table WHERE id = '110';
これはあなたに否定的な結果を与えることに注意してください。ポジティブな結果を得るには、列の順序を逆に:
SELECT DATEDIFF(will_end, Started) AS Duration FROM my_table WHERE id = '110';
タグの順序を交換します
DATEDIFF( 'will_end'、 '開始')
私はに渡される3パラメータがあると思います DATEDIFF(DATEPART、STARTDATE、ENDDATE)
ので、あなたのコードは次のようになります DATEDIFF(DD '開始'、 'will_end')
所属していません StackOverflow