Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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
通过sql查询更新数据库列数据_Sql - Fatal编程技术网

通过sql查询更新数据库列数据

通过sql查询更新数据库列数据,sql,Sql,我有一个要求,即有一个存储日期时间的数据库列,例如24-01-2015 22:31:49。现在,我可以在列中创建许多具有不同值的行 我需要一个查询,将每行的列数据更新为2015年1月24日00:00:00。(基本上将datetime转换为date并保存在同一位置) 我必须在SQL层进行操作,因为在我的应用程序级(Java)中进行操作对于大量记录是不可行的 谢谢您的帮助。解决方案取决于数据库。以下是一些例子: update your_table set datetimeColumn = date(

我有一个要求,即有一个存储日期时间的数据库列,例如24-01-2015 22:31:49。现在,我可以在列中创建许多具有不同值的行

我需要一个查询,将每行的列数据更新为2015年1月24日00:00:00。(基本上将datetime转换为date并保存在同一位置)

我必须在SQL层进行操作,因为在我的应用程序级(Java)中进行操作对于大量记录是不可行的


谢谢您的帮助。

解决方案取决于数据库。以下是一些例子:

update your_table
set datetimeColumn = date(datetimeColumn)
MySQL和DB2:

update t
    set col = ate(col;
SQL Server 2008+:

update t
    set col = cast(col as date);
甲骨文:

update t
    set col = trunc(col);
Postgres(和Postgres派生数据库):

Teradata:

update t
    set col = trunc(col, 'd');

说明:DATE函数将提取日期时间字符串的日期部分。CONCAT函数将在日期结束时添加00:00:00。

您使用什么数据库引擎?
update t
    set col = trunc(col, 'd');
UPDATE table_name
SET date_time_col = CONCAT(date(date_time_col), ' 00:00:00')