从子字符串信息 sql 中填充时间戳列

Posted

技术标签:

【中文标题】从子字符串信息 sql 中填充时间戳列【英文标题】:Fill a timestamp column from substring info sql 【发布时间】:2014-02-20 10:55:15 【问题描述】:

我有一个表 MyTable 定义为:

CREATE TABLE MyTable (id SERIAL   NOT NULL, description VARCHAR, date TIMESTAMP)

在此表中,description 填充了诸如“TOP_XXXXXXXXXXXXX.tsp”之类的字符串,其中 13 个字符长的“XXX”是应该在date 列中的时间戳值。但是,date 列未填写或填写错误。

我想创建一条 SQL 语句,用从 description 列解析的正确值填充 date 列。我使用 H2 数据库。

【问题讨论】:

使用SUBSTRING函数h2database.com/html/functions.html#substring 感谢您的评论。对我来说最有问题的部分实际上是更新表的语法 我认为是这样的:update MyTable set date = cast(substring(description, 4, 13) as datetime) where date is null (我想你在UPDATE命令之前有NULL该列) 【参考方案1】:
UPDATE MyTable 
SET [date] = CAST(SUBSTR([description], 4, 13) AS DATETIME)

【讨论】:

以上是关于从子字符串信息 sql 中填充时间戳列的主要内容,如果未能解决你的问题,请参考以下文章

sql 时间戳转日期字符串

在sqlserver中怎么将一个时间字符串值转换成时间戳的数字形式

使用 sql 将字符串纪元代码从 unix 时间戳转换为日期

如何将格式为“3/22/2018 12:24:29 PM”的日期时间字符串格式化为sql时间戳以插入内存数据库中的h2?

sql 从字符串..with毫秒的Oracle日期时间戳格式化。该示例还使用listagg在oracle中具有行的聚合

根据列子字符串删除记录