Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 更新sql以仅在datetime中更改时间_Mysql_Sql_Datetime_Sql Update - Fatal编程技术网

Mysql 更新sql以仅在datetime中更改时间

Mysql 更新sql以仅在datetime中更改时间,mysql,sql,datetime,sql-update,Mysql,Sql,Datetime,Sql Update,我只想使用sql从datetime更新时间,但它似乎无法工作。更新将从用户处获得,并且只更改时间。 示例2018-10-06 08:00:00更新至2018-10-06 12:00:00用户输入的时间 $sql3="UPDATE course SET date_start = '$date_start' WHERE date_start = SUBSTRING(date_start,11,17) AND CourseNo =

我只想使用sql从datetime更新时间,但它似乎无法工作。更新将从用户处获得,并且只更改时间。 示例2018-10-06 08:00:00更新至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>

可以使用以下表达式:

select date('2018-10-06 08:00:00') + interval 12 hour
如果要添加小时/分钟/秒,也可以使用addtime


这应该足够简单,可以放入update语句中,如果您想这样做的话。

如果我没弄错的话,您会得到一个字符串格式的输入:,表示一天中的某个时间。您希望将datetime列的时间部分替换为一天中给定的时间

为此,可以先将列向下转换为日期,然后再次向上转换为日期时间。这样,一天中的时间部分变成00:00:00。现在使用date_add添加用户提供给您的日期时间。由于一天中的时间在此之前已归零,因此将生成一个日期时间,其中包含用户输入的一天中的时间

UPDATE elbat
       SET nmuloc = date_add(cast(cast(nmuloc AS date) AS datetime), INTERVAL '12:00:00' HOUR_SECOND);

我也有类似的问题

我有很多日期在几秒钟内都不太正确。他们都应该在一小时内结束,即00:00

算出我需要加多少时间我知道我想加几秒钟 现在我可以写一个更新来更正所有稍微偏离的日期。
您的DMB是什么,sql server或mysql或plsql,您是否尝试过使用dateaddSo添加4小时?向所有行添加一些示例表数据和预期结果-作为格式化文本,而不是图像。并向我们展示您当前的查询尝试。您可以在这里找到解决方案:我正在使用mysql。尚未尝试使用dateadd,因为我不知道如何使用。数据应根据用户提示进行更改。
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