在日期时间字段中插入和搜索

问题描述 投票:1回答:1

我试图插入一个毫秒的日期,但是在使用bash插入以下格式后我无法做到:

"%d%m%Y%H%M%S%2N"

在BBDD中,我看到以下内容:

MariaDB [db]> INSERT INTO access_wifi(DATA) VALUES ('0511201813450367');
Query OK, 1 row affected, 1 warning (0.01 sec)

MariaDB [db]> select * from access_wifi;
+----+------------------------+
| id | DATA                   |
+----+------------------------+
|  1 | 0000-00-00 00:00:00.00 |
|  2 | 0000-00-00 00:00:00.00 |
|  3 | 0000-00-00 00:00:00.00 |
+----+------------------------+
3 rows in set (0.00 sec)

什么命令应该正确插入/搜索?

使用此信息进行更新:

MariaDB [db]> DESCRIBE access_wifi;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| DATA  | datetime(2) | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.10 sec)
mariadb
1个回答
2
投票

您需要使用Str_to_Date()函数,以便将自定义日期时间字符串转换为MariaDB / MySQL日期时间格式(yyyy-mm-dd hh:mm:ss.xxxxx)

INSERT INTO access_wifi(DATA) 
VALUES (STR_TO_DATE('0511201813450367', '%d%m%Y%H%i%s%f'));

细节:

  • %d日2位数。
  • %m月份有2位数。
  • %Y年份有4位数字。
  • %H 00-23之间有2位数的小时。
  • %i分钟,2位数。
  • %s秒数2位数。
  • %f子秒(微秒)6位数。
© www.soinside.com 2019 - 2024. All rights reserved.