TIME_FORMAT返回NULL

时间:2017-03-30 20:27:22

标签: mysql

我有时间存储在mysql中,该列设置为时间,因此它显示为13:16:00。当我尝试运行时

SELECT TIME_FORMAT ('alarm_time', '%H:%i) FROM `Alarm`;

我收到NULL,我正在尝试获得13:06的结果。

3 个答案:

答案 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;