我只想使用UPDATE
从datetime
sql
的时间,但这似乎行不通。更新将来自用户,并且仅更改时间。
示例2018-10-06 08:00:00 update to 2018-10-06 12:00:00
(用户输入的时间)
$sql3="UPDATE course
SET date_start = '$date_start'
WHERE date_start = SUBSTRING(date_start,11,17)
AND CourseNo = '$id1' ";
$hasil3=mysql_query($sql3);
if($hasil3==false)
echo "SQL error:".mysql_error();
else
{
?> <center>
<script language="javascript">
alert("Successfully update!");window.location="studentTimetable.php";
</script>
答案 0 :(得分:0)
您可以使用以下表达式:
select date('2018-10-06 08:00:00') + interval 12 hour
如果要增加小时/分钟/秒,也可以使用addtime()
。
如果您要这么做的话,可以简单地放入update
语句中。
答案 1 :(得分:0)
如果我理解的正确,您将获得格式为<hours> ":" <minutes> ":" <seconds>
的字符串输入,表示一天中的某个时间。您想用给定的一天中的时间替换datetime
列中的一天中的时间。
为此,您可以先将该列向下转换为date
,然后再次将其向上转换为datetime
。这样,一天中的时间部分将变为00:00:00。现在使用date_add
添加用户给您的一天中的时间。由于一天中的时间在此之前归零,因此用户输入的时间将是datetime
。
UPDATE elbat
SET nmuloc = date_add(cast(cast(nmuloc AS date) AS datetime), INTERVAL '12:00:00' HOUR_SECOND);
答案 2 :(得分:0)
我对此有类似的问题。
我有几个日期不太正确,但几秒钟之后。它们都应在一个小时(即00:00)结束
SELECT 60 - DATEPART(SECOND, EndDate), e.*
FROM Events e
WHERE DatePart(SECOND, EndDate) <> 0
UPDATE Events
SET EndDate = DATEADD(SECOND, i.Seconds, i.EndDate)
FROM (
SELECT Id, 60 - DATEPART(SECOND, EndDate) AS Seconds, EndDate
FROM Events e
WHERE DatePart(SECOND, EndDate) <> 0
) i
WHERE
i.ID = Events.ID