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