在SQL开发人员中更新日期格式

时间:2012-02-16 14:40:20

标签: sql oracle oracle-sqldeveloper

我需要在SQL中转换日期格式 当前格式为yyyy / mm / dd-hh:mm:ss:sss我需要将其转换为yyyy-mm-dd hh:mm:ss CST 我真的不知道SQL,但做了一些研究,发现我可以使用instr找到字符串并替换它,但是,无论我尝试什么,总有一些东西关闭:( 这里的任何人都可以帮助我吗?提前谢谢。

顺便说一下,它是在oracle sql developer中,所以语法与之前的答案不同。再次感谢

6 个答案:

答案 0 :(得分:1)

如果您当前的列存储为varchar(看起来它基于您的示例),您可以通过以下方式将其转换为日期时间。

declare @date varchar(25)
set @date = '2012/02/16-09:40:30:000'

select Convert(datetime, Left(@date, 4) + '-' + 
        substring(@date, 6, 2) + '-' + 
        substring(@date, 9, 2) + ' ' + 
        substring(@date, 12, 8)) As NewDate

结果将是2012-02-16 09:40:30.000

有很多网站都有关于转换日期时间的详细信息:

  1. http://www.sql-server-helper.com/tips/date-formats.aspx
  2. http://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/
  3. 如果日期存储为日期时间,那么您可以通过执行以下操作来获取格式:

    SELECT convert(varchar, getdate(), 120)
    

答案 1 :(得分:1)

非常感谢你的帮助!我得到了其他用户的帮助,命令是,

update b
set first= to_char(substr(FIRST,1,4)||'-'||substr(FIRST, 6, 2)||'-'||substr(FIRST, 9, 2)||' '||substr(FIRST, 12, 8))

谢谢:) Mylie

答案 2 :(得分:0)

CONVERT()函数通常用于此目的。第三个参数允许您指定所需的日期格式。

如果日期已经在字符串中,则先将其转换为日期类型,然后将其转换回所需格式的字符串。

答案 3 :(得分:0)

http://msdn.microsoft.com/en-us/library/ms187928.aspx

如果您正在使用SQL Server,那么您可以执行以下日期字段:

convert(varchar,getdate(),120)

用列名

替换getdate()

答案 4 :(得分:0)

如果日期存储为DATETIME,则可以通过执行以下操作将其转换为所需格式的字符串:

SELECT CONVERT(VARCHAR(19),YourColumn,120)
FROM YourTable

CAST AND CONVERT

答案 5 :(得分:0)

declare @ds varchar(23)='2012/02/16 12:57:03:002'; --your current format
select convert(varchar(30),cast(@ds as datetime),120)+' CST' --new format you specified