php中文网

MySQL 中 STR_TO_DATE 函数返回 NULL:为何 "plan_start_time" 列为空?

php中文网

mysql中str_to_date函数返回null的问题探究

在使用mysql查询中,str_to_date函数旨在将字符串转换​​为日期或时间类型。然而,某些情况下,这一函数可能会返回null,让我们深入分析一个相关的场景。

问题:
为什么以下查询返回"temp"列为空(null)?

SELECT STR_TO_DATE(plan_start_time, '%h:%i:%s') as temp, plan_start_time from base_stop_calendar

分析和解决方案:

从给出的错误信息来看,问题可能在于str_to_date函数与"plan_start_time"列中存储的数据类型不匹配。

original 提供的附加信息表明 "plan_start_time" 是varchar类型,而 str_to_date 函数转换字符串格式为 hh:mm:ss 时间格式,其中 hh 为小时数,mm 为分钟数,ss 为秒数。在格式化字符中,大写 "h" 表示 24 小时制,而小写 "h" 表示 12 小时制。

因此,请确保 "plan_start_time" 列中的值遵循指定的格式,并且格式化字符与值的格式相匹配。例如,如果 "plan_start_time" 列中包含 "09:00:00" 这样的值,那么格式化字符应为 "%h:%i:%s"。

此外,请注意以下几点:

  • 确保 "plan_start_time" 列中的值是有效的日期或时间字符串。
  • 大写和小写 "h" 有区别。
  • 使用其他日期和时间函数,例如 date_format() 或 timestamp(),可能会更适合某些场景。

以上就是MySQL 中 STR_TO_DATE 函数返回 NULL:为何 "plan_start_time" 列为空?的详细内容,更多请关注php中文网其它相关文章!