我有时间存储在mysql中,该列设置为时间,因此它显示为13:16:00
。当我尝试运行时
SELECT TIME_FORMAT ('alarm_time', '%H:%i) FROM `Alarm`;
我收到NULL
,我正在尝试获得13:06
的结果。
答案 0 :(得分:1)
alarm_time
周围的引号会导致将其解释为字符串。如果删除它们,或用反引号包围它们,它将被解释为表格的列,其中包含日期。
这些都应该起作用
SELECT TIME_FORMAT (alarm_time, '%H:%i' ) FROM `Alarm`;
或
SELECT TIME_FORMAT (`alarm_time`, '%H:%i' ) FROM `Alarm`;
关于你在评论中提到的比较问题,如果我理解正确,你可以用
之类的东西来做yourDate between SUBTIME(yourOtherDate, '00:00:30') and ADDTIME(yourOtherDate, '00:00:30')
或任何其他间隔
答案 1 :(得分:0)
为什么不简单地使用left(value,position)
。
select left(alarm_time,5) from Alarm;
具有正确的架构名称和反引号,只需要它就足够了。
该函数的语法是自解释的:)
答案 2 :(得分:0)
这应该可以解决问题。
select time_format(alarm_time,'%h:%m') as alarm_time
from alarm;