我需要在SQL中转换日期格式 当前格式为yyyy / mm / dd-hh:mm:ss:sss我需要将其转换为yyyy-mm-dd hh:mm:ss CST 我真的不知道SQL,但做了一些研究,发现我可以使用instr找到字符串并替换它,但是,无论我尝试什么,总有一些东西关闭:( 这里的任何人都可以帮助我吗?提前谢谢。
顺便说一下,它是在oracle sql developer中,所以语法与之前的答案不同。再次感谢
答案 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
有很多网站都有关于转换日期时间的详细信息:
如果日期存储为日期时间,那么您可以通过执行以下操作来获取格式:
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
答案 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