如何忽略MySQL 5.6的小数秒?

时间:2013-08-27 05:53:21

标签: mysql

MySQL 5.6.4及更高版支持时间列类型的小数秒。 http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html

但我想忽略小数秒部分的兼容性。

mysql> CREATE TABLE `t1` (`created` datetime(0) NOT NULL);
Query OK, 0 rows affected (0.41 sec)

mysql> INSERT INTO t1 set created = '2013-08-27 05:13:21.999';
mysql> INSERT INTO t1 set created = '2013-08-27 23:59:59.999';


mysql> select * from t1;
+---------------------+
| created             |
+---------------------+
| 2013-08-27 05:13:22 |
| 2013-08-28 00:00:00 |
+---------------------+
2 row in set (0.00 sec)

预期结果为'2013-08-27 05:13:21'和'2013-08-27 23:59:59'。

如何使用以前版本的MySQL保存相同的结果?

2 个答案:

答案 0 :(得分:3)

尝试创建如下表格:

CREATE TABLE t1 (dt DATETIME(6) NOT NULL);

<强> SQL Fiddle

答案 1 :(得分:0)

使用 SUBTIME 功能从时间中减去分数..

试试这个...从原始时间减去微秒然后转换为日期格式......

SELECT cast(SUBTIME(created,cast(concat('0:0:0.',(microsecond(created))) as time)) as datetime) from t1;

我测试了它..它的工作.. PFB快照.. enter image description here