如何在mysql中插入时间2009-09-22 18:09:37.881
。实际上我可以在mysql中插入和检索时间2009-09-22 18:09:37
但是每当我尝试插入2009-09-22 18:09:37.881
数据时都没有插入数据库。
2009-09-22 18:09:37.881 -------> YYYY-MM-DD HH:MI:Sec.Ms
我使用以下查询创建了一个表
Create table XYZ(MyTime DateTime);
我尝试了下面的查询工作正常
insert into XYZ(MyTime) values('2009-09-22 18:09:37');
但我尝试使用下面的查询,但是没有正常工作(数据没有在数据库中插入)
insert into XYZ(MyTime) values('2009-09-22 18:11:38.881');
答案 0 :(得分:5)
我解决了问题。数据库不允许以毫秒为单位插入时间。请看下面的行:
CREATE TABLE MyTimeStamp(TimeData decimal(17,3));
INSERT INTO MyTimeStamp(TimeData) values (20090922201843.426);
SELECT timestamp(TimeData) FROM MyTimeStamp;
2009-09-22 20:018:43.426000
答案 1 :(得分:2)
最终在MySQL 5.6.4中添加了小数秒功能。 链接到文档:{{3p>
答案 2 :(得分:1)
对MySQL参考页面here进行了快速扫描后,他们似乎建议您不能将毫秒添加到datetime类型的列中。直接引用是
“然而,微秒不可能 存储在任何时间的列中 数据类型。任何微秒部分都是 丢弃“。
这意味着您也不能使用时间戳。
是否需要几毫秒?它们是否可以存储在辅助列中,然后在检索时与基本日期时间重新组合?
答案 3 :(得分:0)
答案 4 :(得分:0)
<?
# PHP
$microtime = microtime(true);
$datetime = date("Y-m-d H:i:s");
?>
ADD: INSERT INTO your_table(col_datetime,col_microtime)值('$ datetime','$ microtime')
列出new-&gt; old: SELECT * FROM yout_table ORDER BY col_microtime DESC
列出old-&gt; new: SELECT * FROM yout_table ORDER BY col_microtime