mysql 中查询别名为 temp 的列为何返回 null?
这个问题涉及到 mysql 中使用 str_to_date() 函数将字符串转换为日期格式。
原始查询如下:
SELECT STR_TO_DATE(plan_start_time, '%h:%i:%s') AS temp, plan_start_time FROM base_stop_calendar
其中:
- plan_start_time 是 varchar 类型,存储时间字符串
- str_to_date() 函数将字符串转换为日期格式,别名为 temp
然而,原查询返回的 temp 列为 null。
答疑
根据给出的答复,这个问题可能是由于以下原因造成的:
- 格式化字符串中 h 和 h 的大小写错误。h 代表小时(00 到 12),而 h 代表小时(00 到 23)。在给出的查询中,h 是小写,因此它期望输入字符串中的小时值介于 00 到 12 之间,但实际输入的时间值可能超过 12。
已提供了一个修改后的查询,其中将 h 替换为 h。该查询可以正确地将 plan_start_time 字符串转换为日期格式并存储在 temp 列中。
另外,需要确保 plan_start_time 列确实包含有效的时间字符串格式。varchar 类型可以存储文本,但它不验证数据的格式。
以上就是MySQL查询中STR_TO_DATE函数导致别名列返回NULL值的原因是什么?的详细内容,更多请关注php中文网其它相关文章!
版权声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系 yyfuon@163.com