Sql我有一个字符串我想存储为日期时间

时间:2015-06-16 15:20:19

标签: sql string datetime

我有字符串,这些字符串存储为varchar(50)但我想将它们作为日期时间存储在不同的表/列中。有人知道如何轻松转换它们吗?

2015-05-31 19:01:00-06:00
2015-05-31 19:02:00-06:00
2015-05-31 19:03:00-06:00
2015-05-31 19:04:00-06:00
2015-05-31 19:05:00-06:00
2015-05-31 19:06:00-06:00
2015-05-31 19:07:00-06:00
2015-05-31 19:08:00-06:00
2015-05-31 19:09:00-06:00
2015-05-31 19:10:00-06:00

我尝试了以下内容.... timeStr是一个varchar(50),date_time是一个日期时间。这是在MSSql

插入temp(timeStr,date_time)   价值观('2015-05-31 19:01:00-06:00','2015-05-31 19:01:00-06:00');

插入temp(timeStr,date_time)   值('2015-05-31 19:01:00-06:00',convert(datetime,'2015-05-31 19:01:00- 06:00'));

插入temp(timeStr,date_time)   值('2015-05-31 19:01:00-06:00',演员('2015-05-31 19:01:00-06:00'作为日期时间));

3 个答案:

答案 0 :(得分:0)

这是有详细记录的,请参见此处:CAST and CONVERT

答案 1 :(得分:0)

我最终使用PHP将字符串解析为纪元时间并将其存储为int。

答案 2 :(得分:0)

MySQL 中有一个使用STR_TO_DATE函数的简单解决方案,该函数将参数传递为格式化字符串和带有format的字符串。对于您的示例,为了摆脱日期之后的尾随字符,我也使用了LEFT函数。

假设您的表名是 foo ,varchar(50)字段的名称是 CH DT 名称日期时间(我今天对于名字缺乏幻想......),查询是:

{{1}}