现有一个表table,其中有一个VARCHAR2格式的字段slbh,和一个时间字段time;
假设slbh字段值位20221121,time字段为空;
如何用update语句,根据slbh字段给time字段刷上时间值;
可借鉴如下方式:
更新date和timestamp数据类型的字段,分别需要用to_date()和to_timestamp()函数转换一下才可更新成功。
例:
UPDATE table_A
SET
date_A = TO_DATE('12-11-27', 'RR-MM-DD'),
timestamp_B = TO_TIMESTAMP('12-11-27 18:05:45.546000000', 'RR-MM-DD HH24:MI:SS.FF')
WHERE
id = '001'
说明:
1.TIMESTAMP的毫秒数有9位数字,格式patten里面用FF对应。
2.如果时间是24小时制,格式patten里面必须写上HH24/hh24。
这个意思?
--sqlserver
DECLARE @a TABLE (id INT IDENTITY(1,1),slbh VARCHAR(20),[time] DATETIME)
INSERT @a SELECT '20221121',NULL
UNION ALL SELECT '20221124',NULL
UPDATE a SET [time] = CONVERT(DATETIME,slbh)
FROM @a a
SELECT * FROM @a
--result
1 20221121 2022-11-21 00:00:00.000
2 20221124 2022-11-24 00:00:00.000
update table xxx set time=to_date(slbh,'yyyymmdd');
字符串分割然后作为更新字段的值
可以参考 https://www.cnblogs.com/cxxjohnson/p/4824405.html
sql同curating,注意第二个table是表名
update table table set time=to_date(slbh,'YYYYMMDD')
mysql 设置 update操作时自动更新时间字段
https://www.cnblogs.com/boye169/p/16648757.html