1

私は、ANSISQL標準を使用して2つの日付の間の日数を計算しようとしています。しかし、このステートメントはMySQLでNULLを返すため、何かが足りません。

SELECT EXTRACT(DAY FROM DATE('2009-01-25') - DATE('2009-01-01')) AS day_diff;

MySQL DATEDIFF関数を知っていますが、なぜこのコードが機能しないのか興味があります。

私は何が欠けていますか?

4

1 に答える 1

2

これがあなたの意図したことですか?

mysql> SELECT EXTRACT(DAY FROM DATE('2009-01-25')) - 
         EXTRACT(DAY FROM DATE('2009-01-01')) AS day_diff;
+----------+
| day_diff |
+----------+
|       24 |
+----------+
1 row in set (0.00 sec)

アップデート:

これを別の月 (または別の年) の日付に対して機能させたい場合は、MySQLDATEDIFF()関数を使用できます。

例:

mysql> select datediff('2009-04-25','2009-01-01');
+-------------------------------------+
| datediff('2009-04-25','2009-01-01') |
+-------------------------------------+
|                                 114 |
+-------------------------------------+
1 row in set (0.00 sec)

mysql> select datediff('2010-04-25','2009-01-01');
+-------------------------------------+
| datediff('2010-04-25','2009-01-01') |
+-------------------------------------+
|                                 479 |
+-------------------------------------+
1 row in set (0.00 sec)
于 2013-01-04T21:44:48.927 に答える