SQL中的日期转换

时间:2014-08-15 13:30:02

标签: sql date

我有一个varchar列,它以下面的格式保存日期和时间信息:

20140813-14:01:05

这是格林尼治标准时间。如何通过减去4将其更改为EST?我使用了convert function和dateadd,但没有得到我想要的结果。

有人可以帮忙吗?

感谢。

4 个答案:

答案 0 :(得分:1)

假设SQL Server和格式完全一致,您可以使用:

DECLARE @String VARCHAR(50) = '20140813-14:01:05'

SELECT DATEADD(HOUR, -4, CAST(LEFT(@String, 8) AS DATETIME) + CAST(RIGHT(@String, 8) AS DATETIME)) AS ESTDate

答案 1 :(得分:1)

SQL中的日期转换 SQL函数 与任何其他编程语言一样,SQL也支持一组丰富的内置函数。这些功能极大地提高了处理数据库中存储的信息的能力。这些功能也称为Oracle功能。 SQL函数接受参数作为输入,并返回结果作为输出,参数可以是一些常数值,表达式或与表相关的列名。 SQL函数的一般格式如下所示: Function_name(参数1,参数2,…,参数) 根据SQL函数是对单个行还是对一组或多行进行操作,可以将其分为两部分。 more

站点:https://www.worldteachesus.com/

答案 2 :(得分:0)

似乎为时已晚,但TSQL替代方案:

DECLARE @String VARCHAR(50) = '20140813-14:01:05'

select convert(datetime,replace(@string,'-',' '))
;

Oracle

with data as (
select '20140813-14:01:05' as string from dual
   )
select to_date(string,'YYYYMMDD-HH24:MI:SS') from data

编辑:但实际上存储为字符串的日期非常糟糕。


请在问题中识别dbms类型(尤其是日期处理)

答案 3 :(得分:0)

考虑这个例子并尝试一下:

GMT:

SELECT GETDATE()

image1

EST:

SELECT DATEADD(HOUR, -4, CONVERT(varchar(20),GETDATE(),120))

image2