-1

有人可以帮我将以下 PL SQL 代码转换成它的 MSSQL 等价物吗?提前致谢。

return to_date(l_date_time, 'rrrrdddhh24miss');
4

1 回答 1

0

SQL小提琴

MS SQL Server 2012 架构设置

CREATE TABLE Table1
    ([l_date_time] varchar(25))
;

INSERT INTO Table1
    ([l_date_time])
VALUES
    ('1-5-13 1:02:03 PM'),
    ('9-4-73 9:10:11 AM')
;

查询 1

select convert(varchar(4), datepart(yyyy,l_date_time)) +
       right('00' + convert(varchar(3), datepart(dy,l_date_time)),3) +
       right('0' + convert(varchar(2), datepart(hh,l_date_time)),2) +
       right('0' + convert(varchar(2), datepart(mi,l_date_time)),2) +
       right('0' + convert(varchar(2), datepart(ss,l_date_time)),2)
from Table1

结果

|      COLUMN_0 |
|---------------|
| 2013005130203 |
| 1973247091011 |

另外,请考虑到这一点:

“Microsoft SQL Server 使用 2049 作为解释日期的截止年份;OLE 自动化对象使用 2030。您可以使用两位数年份截止选项来提供 SQL Server 和客户端应用程序之间日期值的一致性。但是,为了避免日期的歧义,在您的数据中使用四位数年份。”

请参阅两位数年份截止选项

于 2013-09-26T04:33:25.603 回答