MYSQL 12小时时间格式一直使用前导0,无法转换为24小时格式

MYSQL 12小时时间格式一直使用前导0,无法转换为24小时格式,mysql,time,Mysql,Time,我从一个有12小时格式时间的数据库中引入数据。出于某种原因,写入数据库的代码有时写入时间为下午3:30,有时写入时间为下午3:30。我无法控制。但是,我可以控制查询数据的方式。我正在尝试使其统一,以便所有时间都返回而不使用0。下午3:30的所有时间都将恢复为下午3:30,而不是下午3:30 我试过日期格式,时间格式字符串到日期,但没有任何效果。如果我使用time\u格式(我的列名称,%H:%I')将其转换为24小时格式它会将下午2点转换为02:00。如果我不将其转换为24小时格式并使用TIME\

我从一个有12小时格式时间的数据库中引入数据。出于某种原因,写入数据库的代码有时写入时间为下午3:30,有时写入时间为下午3:30。我无法控制。但是,我可以控制查询数据的方式。我正在尝试使其统一,以便所有时间都返回而不使用0。下午3:30的所有时间都将恢复为下午3:30,而不是下午3:30

我试过日期格式,时间格式字符串到日期,但没有任何效果。如果我使用
time\u格式(我的列名称,%H:%I')将其转换为24小时格式
它会将下午2点转换为02:00。如果我不将其转换为24小时格式并使用
TIME\u格式(我的列名称,%l:%I')
它会忽略我的请求,不使用前导0

初始时间以长文本格式存储为元键。程序只是将时间放在它选择的文本中


如何解决此问题?

您没有向我们提供足够的信息来帮助您。请回答你的问题。您试图格式化为
3:30pm
的列的数据类型是什么。如果您使用
SELECT-TIME\u格式(DeliveryTime,%H:%i')
您会看到什么呢?
SELECT-DeliveryTime
?它实际上是作为元键和长文本存储的。如果您在数据库中存储时间或日期信息,几乎总是以本机格式而不是作为长文本存储最有意义。然后,您将能够执行各种漂亮的操作,如按时间查询,或始终一致地显示,而无需执行各种显示转换以删除前导零。我建议通过将时间存储在适当的列类型而不是长文本列类型中来解决您的问题。