我最近将我的字段的数据类型从varchar更改为datetime,但在我这样做之前,我首先复制了它,因为内容将重置为此值000-00-00 00-00-00
现在,我正在尝试更新表格的日期时间字段。
这就是我做的事情
UPDATE table
INNER JOIN copyOfTable ON (table.logID = copyOfTable.logID)
SET table.date = DATE(STR_TO_DATE(copyOfTable.date, '%m/%d/%Y'))
结果是这样的
YYYY-mm-dd 00-00-00
2013-08-02 00-00-00
我也试过
SET table.date = DATE(STR_TO_DATE(copyOfTable.date, '%m/%d/%Y %h:%i:%s'))
,结果保持不变。
我想要的也是复制时间(hh:ii:ss)
so that the total format of time is (YY-mm-dd hh-ii-ss)
表'copyOfTable'的时间格式为(mm / dd / yy h:i:s A)
怎么做这个家伙?
答案 0 :(得分:2)
IMHO
STR_TO_DATE()
包裹到DATE()
'%m/%d/%y %h:%i:%s %p'
据你所知
表'copyOfTable'的时间格式为(mm / dd / yy h:i:s A)
因此,如果我理解正确,copyOfTable
中的值看起来像08/01/13 04:08:12 AM
这是一个例子
SELECT STR_TO_DATE('08/01/13 04:08:12 AM', '%m/%d/%y %h:%i:%s %p') new_date
输出:
| NEW_DATE | --------------------------------- | August, 01 2013 04:08:12+0000 |
这是 SQLFiddle 演示