在我的一个项目中,我使用函数STR_TO_DATE()
将字符串转换为基于fmt格式字符串的日期值。例如,将字符串转换为DATE值:
SELECT STR_TO_DATE('21-5-2013','%d-%m-%Y'); // returns 2013-05-21
但是当我将时间字符串转换为TIME值时,我会遇到一些奇怪的行为:
SELECT STR_TO_DATE('203005','%h%i%s'); // returns null
SELECT STR_TO_DATE('19:30:05','%h:%i:%s'); // returns null
SELECT STR_TO_DATE('113005','%h%i%s'); // returns 11:30:05
SELECT STR_TO_DATE('01:30:05','%h:%i:%s'); // returns 01:30:05
我在StackOverflow中找到here的答案之一是:
这确实是因为SQL模式NO_ZERO_DATE。
但我仍然对这个功能的行为很感兴趣。您可以按照link
轻松查看我正在谈论的内容答案 0 :(得分:3)
问题是您正在设置的格式,它会识别0-12之间的时间,而不是0-23。它应该是
SELECT STR_TO_DATE('203005','%H%i%s');
SELECT STR_TO_DATE('19:30:05','%H:%i:%s');
使用所有可用时间和日期格式列表检查以下链接。 https://www.techonthenet.com/mysql/functions/str_to_date.php
答案 1 :(得分:1)
我最终将日期与这样的事情联系起来,以避免出现<div class="row">
<div class="form-group col-sm-6">
<label>Name
<i class="fa fa-asterisk text-danger"></i>
</label>
<input type="text" class="form-control" id="myEl" value.bind="location.name & validate">
</div>
</div>
。
null