字符串或数字中应该包含多少位数字,以便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)
上面的查询返回NULL,因为一位数字小于8。
相反,当将年份视为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)
上面的查询返回NULL,因为位数小于6。
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练