1

以下の表があります。

+-------------+------------------+------+-----+-------------------+----------------+
| Field       | Type             | Null | Key | Default           | Extra          |
+-------------+------------------+------+-----+-------------------+----------------+
| category_id | int(11) unsigned | NO   | PRI | NULL              | auto_increment |
| title       | varchar(64)      | NO   |     | NULL              |                |
| description | text             | NO   |     | NULL              |                |
| created_on  | timestamp        | NO   |     | CURRENT_TIMESTAMP |                |
| updated_on  | timestamp        | YES  |     | NULL              |                |
+-------------+------------------+------+-----+-------------------+----------------+

一連のクエリを作成して実行した日付に従って、いくつかのレコードを削除する必要がありました。

mysql> select created_on from categories limit 10;
+---------------------+
| created_on          |
+---------------------+
| 2013-01-14 09:26:21 |
| 2012-08-15 11:18:38 |
| 2012-09-06 06:44:46 |
| 2012-09-06 23:27:14 |

それから

mysql> select date('2013-01-14 09:26:21');
+-----------------------------+
| date('2013-01-14 09:26:21') |
+-----------------------------+
| 2013-01-14                  |
+-----------------------------+

そして最後に私は得ました:

mysql> select DATE('created_on') from categories limit 10;
+--------------------+
| DATE('created_on') |
+--------------------+
| NULL               |
| NULL               |
| NULL               |
| NULL               |

ご覧のとおり、日付は正しく変換されていません。約10分で正常に動作します:

mysql> select date(created_on) from categories limit 10;
+------------------+
| date(created_on) |
+------------------+
| 2013-01-14       |
| 2012-08-15       |
| 2012-09-06       |
| 2012-09-06       |

クエリを実行している間、データは無傷であったと確信しています。

だから私の質問:
日付関数が同じ入力で異なる結果を示した理由を誰かが説明できますか?

4

2 に答える 2

3
select DATE('created_on') from categories limit 10;

文字列と列:

select DATE(created_on) from categories limit 10;
于 2013-01-21T19:05:06.090 に答える
3

使用する必要があります::

select DATE(created_on) from categories limit 10;

逆コンマを使用することで、データベースに'created_on'パラメーターとして扱うように求めています。日付型に変換できないため、null を取得しています。

于 2013-01-21T19:04:02.940 に答える