更新oracle中的日期值

时间:2012-02-18 02:17:22

标签: sql oracle

我需要在ORACLE SQL Developer

中转换日期格式

当前格式为yyyy / mm / dd-hh:mm:ss:sss我需要将其转换为yyyy-mm-dd hh:mm:ss CST 我真的不知道SQL,但做了一些研究。 这是我在论坛上咨询其他人的命令。但它让我无法识别命令错误。表名是B,列名是First

UPDATAE B
set First = concat(to_char(substring(FIRST,1,4) + '-' + substring(FIRST, 6, 2) + '-' + substring(FIRST, 9, 2) + ' ' + substring(FIRST, 12, 8));

有人可以帮我吗?提前谢谢。

2 个答案:

答案 0 :(得分:1)

“无法识别的命令”仅仅是UPDATE

的拼写错误
UPDATAE B

// Should be
UPDATE B

要在执行UPDATE语句之前验证结果是您所期望的,请使用SELECT

SELECT 
  to_char(substr(FIRST,1,4) || '-' || substr(FIRST, 6, 2) || '-' || substr(FIRST, 9, 2) || ' ' || substr(FIRST, 12, 8)) AS Test
FROM B

答案 1 :(得分:0)

嗯......我要么错过了一些非常明显或者其他人的东西。

你想约会操作吗?使用to_dateto_char。我将假设这个ss:sss表示秒,然后是小数秒。您的日期似乎是一个字符串,因此我们需要将其转换两次:

update b
   set first =  to_char( to_date( my_date, 'yyyy/mm/dd-hh:mi:ss:ff3')
                        ,'yyyy-mm-dd hh:mi:ss' )

通常情况下,使用日期时,仅使用date functions和提供的formats要容易得多。

如果您有日期,请将其存储为日期。它会在以后节省一个麻烦的世界。