DATEDIFFを使用するには?二つの日付の内部でどのように多くの日です

StackOverflow https://stackoverflow.com/questions/1946490

質問

どのように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')

http://msdn.microsoft.com/en-us/library /ms189794.aspxする

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top