【发布时间】:2015-04-24 06:53:06
【问题描述】:
我有一个 MYSQL 表,其中有一个名为 timestamp 的列名,以字符串格式存储。此列中的时间戳采用以下格式,例如'2014 年 10 月 20 日下午 5:39'
现在如何选择一行并将时间戳列动态转换为 24HR 格式。
基本上我想要这样的东西。
SELECT id, user, STR_TO_DATE(timestamp, '%d/%m/%Y %h:%i %p') as timestamp FROM mytable WHERE user="bob";
但这不起作用。看起来它无法识别STR_TO_DATE sql 函数中的时间戳变量及其为时间戳列重新调整 NULL。
请帮忙。
【问题讨论】:
-
“我有一个 MYSQL 表,其中有一个名为 timestamp 的列名,以字符串格式存储。” - 这就是你出错的地方。正确的方法是将其存储为日期或时间戳,并在您想将其格式化为特定格式时进行转换。我认为查询出错了,因为
timestamp是保留字。尝试将其括在反引号 (STR_TO_DATE(`timestamp`, '%....')) 中,或完全重命名该列。 -
尝试封闭然后重命名列名。仍然返回 NULL 作为值。
标签: mysql sql str-to-date