我有一个varchar列,它以下面的格式保存日期和时间信息:
20140813-14:01:05
这是格林尼治标准时间。如何通过减去4将其更改为EST?我使用了convert function和dateadd,但没有得到我想要的结果。
有人可以帮忙吗?
感谢。
答案 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。
答案 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)