1

DATEDIFF の使用方法 どうすればこれを機能させることができますか? または、DATEDIFFを完全に別の方法で使用する必要がありますか?

SELECT DATEDIFF('Started ','will_end') AS 'Duration' FROM my_table WHERE id = '110';

私は答えを得ようとしています.2つの日付の間に何日ありますか.

次のような回答を得たいと思います:
Duration = 7 days;

私はこの種のデータベースを持っています:

開始 | will_end
2009-12-17 | 2009-12-24
2009-12-12 | 2009-12-26

4

4 に答える 4

4

will_end1 番目、 2 番目に置く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
于 2009-12-22T13:54:48.490 に答える
2

結果が出ています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';
于 2009-12-22T13:59:19.367 に答える
0

注文を置き換える

DATEDIFF('will_end','開始')

于 2009-12-22T13:55:53.793 に答える
0

DATEDIFF ( datepart 、 startdate 、 enddate ) で渡される 3 つのパラメーターがあると思います

したがって、コードは DATEDIFF ( dd , 'Started ','will_end' ) になります

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

于 2009-12-22T13:57:11.663 に答える