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

时间:2015-01-24 17:04:54

标签: sql

我有一个要求,其中有一个存储DateTime的数据库列,例如24-01-2015 22:31:49。现在,我可以在列中添加许多具有不同值的行。

我需要一个查询来将每列的数据更新到24-01-2015 00:00:00。 (基本上将日期时间转换为日期并将其保存在同一位置)。

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

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

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

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派生的数据库):

update t
    set col = date_trunc('day', col);

Teradata的:

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

答案 1 :(得分:1)

UPDATE table_name
SET date_time_col = CONCAT(date(date_time_col), ' 00:00:00')

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

答案 2 :(得分:0)

update your_table
set datetimeColumn = date(datetimeColumn)