我试着用php做一个sql语句,把一个字符串转换成一个时间(6)。但在过去的12个小时里,我什么都试过了,一点进展都没有。我试过这些说法,都产生了同样的错误。
UPDATE scheduling SET start='03:42PM' WHERE activityid=2;
UPDATE scheduling SET start=CONVERT(TIME(6),'03:42PM');
INSERT INTO scheduling(start) VALUES (start=CONVERT(TIME(6),'03:42PM'));
INSERT INTO scheduling(start) VALUES (start=CONVERT(TIME(6),'03:42PM'));
INSERT INTO scheduling(start) VALUES (start=CONVERT(TIME(6),'15:42'));
错误是
语法错误:意外的“03:42pm”(单引号文本)
我不知道如何解决这个问题,表存在,我已经成功地获得了其他信息使用语句,如 SELECT activityid=2 FROM .scheudling
我想我有两个问题,任何一个答案都可以。
在我的php文档中,如何将从android studio截取的字符串转换为日期(我得到了正确的变量 $start=$_Post("start")
,这样就行了,但我不能把它转换成时间。我上网看了看,试了所有看起来有用的东西。
通过sql代码转换,我已经试过了 CAST
以及 CONVERT
,两者都不起作用。我的起始列是类型 TIME(6)
.
1条答案
按热度按时间mzsu5hc01#
我建议使用select语句测试表达式。
首先,mysql
CONVERT
函数参数向后翻转。语法是
CONVERT(expr,type)
以及type
作为关键字提供,而不是字符串文本。例如:转换为
TIME
数据类型字符串文字的“pm”部分将被忽略。
我们可以使用
STR_TO_DATE
函数从包含am/pm指示器的字符串返回时间值也没必要把它扔给我
TIME(6)
,我们可以这样做:这个
STR_TO_DATE
功能记录如下:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_str-迄今为止
的格式模式
STR_TO_DATE
记录在这里,在DATE_FORMAT
:https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-格式
后续行动
演示:
设置
执行上面答案中的update语句
结果
第二次随访
使用相同的
sql_mode
op报告的设置:测试:
退货
但是这个更复杂的表达:
退货
更复杂的表达式是一种避免由
STRICT_TRANS_TABLES
以及NO_ZERO_DATE
在sql_mode
.