我有一个要求,其中有一个存储DateTime的数据库列,例如24-01-2015 22:31:49。现在,我可以在列中添加许多具有不同值的行。
我需要一个查询来将每列的数据更新到24-01-2015 00:00:00。 (基本上将日期时间转换为日期并将其保存在同一位置)。
我必须在SQL层中执行此操作,因为在我的应用程序级别(Java)中执行此操作对于大量记录是不可行的。
感谢您的帮助。
答案 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)