ホームページ  >  記事  >  データベース  >  MySQL で日付値として指定される文字列または数値には何桁必要ですか?

MySQL で日付値として指定される文字列または数値には何桁必要ですか?

WBOY
WBOY転載
2023-08-27 12:33:03985ブラウズ

字符串或数字中应该有多少位数字才能被 MySQL 指定为日期值?

年は 4 桁の値として扱われますが、MySQL では日付値として指定するには文字列または数値に少なくとも 8 桁が必要です。この場合、マイクロ秒も保存したい場合、値は最大 20 桁になります。

mysql> Select TIMESTAMP('20171022040536.100000');
+-----------------------------------+
| TIMESTAMP('20171022040536100000') |
+-----------------------------------+
| 2017-10-22 04:05:36.100000        |
+-----------------------------------+
1 row in set, 1 warning (0.00 sec)

上記のクエリは、TIMESTAMP 値として 20 桁の数値文字列を受け取ります。最後の 6 桁はマイクロ秒を表します。

mysql> Select TIMESTAMP(20171022);
+---------------------+
| TIMESTAMP(20171022) |
+---------------------+
| 2017-10-22 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

上記のクエリは、TIMESTAMP 値として 8 桁の文字列を受け取ります。

mysql> Select TIMESTAMP(201710);
+-------------------+
| TIMESTAMP(201710) |
+-------------------+
| NULL              |
+-------------------+
1 row in set, 1 warning (0.00 sec)

数値が 8 桁未満であるため、上記のクエリは NULL を返します。

対照的に、年を 2 桁の数値として扱う場合、MySQL が日付値として指定する文字列または数値には少なくとも 6 桁が必要です。この場合、マイクロ秒も保存したい場合、値は最大 18 桁になります。

mysql> Select TIMESTAMP(171022);
+---------------------+
| TIMESTAMP(171022)   |
+---------------------+
| 2017-10-22 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

上記のクエリは、TIMESTAMP 値として 6 桁の文字列を受け取ります。

mysql> Select TIMESTAMP('171022040536.200000');
+----------------------------------+
| TIMESTAMP('171022040536.200000') |
+----------------------------------+
| 2017-10-22 04:05:36.200000       |
+----------------------------------+
1 row in set (0.00 sec)

上記のクエリは、TIMESTAMP 値として 18 桁の数値文字列を受け取ります。ドット (.) の後の最後の 6 桁はマイクロ秒を表します。

mysql> Select TIMESTAMP(1710);
+-----------------+
| TIMESTAMP(1710) |
+-----------------+
| NULL            |
+-----------------+
1 row in set, 1 warning (0.00 sec)

桁数が 6 未満であるため、上記のクエリは NULL を返します。

以上がMySQL で日付値として指定される文字列または数値には何桁必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。