Qwe*_*rty 3 sql database sql-server datetime
我在 SQL Server 2017 中有一个表。在这个表中,日期存储为下一个格式的小数:
20180717164540.2200000
YYYYMMDDhhmiss.nnnnnnn
年份 4 位数字,日历月 2 位数字,一个月中的一天 2 位数字,UTC 中基于 24 小时制的小时的 2 位数字,一小时的 2 位数字,秒的 2 位数字一分钟和小数秒。
我的目标是将此格式转换为 DateTime 并将其存储在数据库中的另一个表中。所以我的问题是如何在 SQL Server 中将此格式转换为 DateTime 格式。据我所知,您无法像在 Oracle 中那样创建自定义日期格式。
我用FORMAT AND CONVERT MSSQL 函数尝试了很多次,但它不起作用。
SELECT FORMAT(CONVERT(NVARCHAR(22), DECIMALCOLUMN), 'YYYYMMDDhhmiss') FROM SOURCE-TABLE;
Run Code Online (Sandbox Code Playgroud)
感谢您的帮助!
You were really close with your FORMAT idea. FORMAT gives you an NVARCHAR output, which you can explicitly CAST as a DATETIME2(7) (which maintains your precision level).
DECLARE @dateWannaBe DECIMAL(21,7) = 20180717164540.2200000;
SELECT CAST(FORMAT(@dateWannaBe,'####-##-## ##:##:##.#######', 'en-US') AS DATETIME2(7)) AS ActualDateTime2;
+-----------------------------+
| ActualDateTime2 |
+-----------------------------+
| 2018-07-17 16:45:40.2200000 |
+-----------------------------+
Run Code Online (Sandbox Code Playgroud)
编辑:根据@JeroenMostert 的评论,向 FORMAT 函数添加了文化参数。
归档时间: |
|
查看次数: |
974 次 |
最近记录: |