Mysql TIME\u格式返回NULL

Mysql TIME\u格式返回NULL,mysql,Mysql,我在mysql中存储了一个时间,该列被设置为time,因此它的读数为13:16:00。当我试着跑的时候 SELECT TIME_FORMAT ('alarm_time', '%H:%i) FROM `Alarm`; 我得到一个NULL,我正试图得到13:06的结果,为什么不直接使用左(值、位置) 从报警中选择左侧(报警时间,5)就足够了 该函数的语法是不言自明的:)在报警时间周围的引号将其解释为字符串。如果删除它们,或用反勾号将其环绕,则它将被解释为表的列,其中包含日期。 这两者都应该有效 S

我在mysql中存储了一个时间,该列被设置为time,因此它的读数为
13:16:00
。当我试着跑的时候

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

我得到一个
NULL
,我正试图得到
13:06

的结果,为什么不直接使用
左(值、位置)

从报警中选择左侧(报警时间,5)就足够了


该函数的语法是不言自明的:)

报警时间
周围的引号将其解释为字符串。如果删除它们,或用反勾号将其环绕,则它将被解释为表的列,其中包含日期。 这两者都应该有效

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

关于你在评论中提出的关于比较的问题,如果我理解正确,你可以用类似的方法来做

yourDate between SUBTIME(yourOtherDate, '00:00:30') and ADDTIME(yourOtherDate, '00:00:30') 

或者任何其他时间间隔

这应该就可以了

select time_format(alarm_time,'%h:%m') as alarm_time
  from alarm;

删除alarm_time周围的引号,否则您将从该字符串中提取小时和分钟,如果
alarm_time
是字段名,请使用倒勾。@Stefanozanii,是的,修复了它谢谢,我对自己很失望。我犯了那样的错误。有点离题,但当我用来比较时间时,无论如何,要让它=在一分钟内的时间?@Stefanozanin你介意把答案放在这里,这样我就可以把你的答案标记为答案了吗?@Vlad:这在这种情况下以及在更复杂的格式中都会很有帮助。假设您只需要10位数联系人号码的最后5位数来收集一些位置信息。您只需从blah中查询
并选择right(mobile,5),就可以得到最后5位数字。如果您需要字符串/数字中的第n个
nth
部分,则将
left
right
组合在一起可以帮助您摆脱困境。
select time_format(alarm_time,'%h:%m') as alarm_time
  from alarm;