我想知道如何在SQL Server中转换oracle指令TO_CHAR(MY_COLUMN_NAME, 'YYYYMMDDHH24MISSFF3')
。 (包含日期的列)
我想我可以在SQL Server中使用CONVERT(VARCHAR(19), MY_COLUMN_NAME, 120);
将日期转换为YYYY-MM-DD格式但是YYYYMMDDHH24MISSFF3格式呢?
答案 0 :(得分:3)
您可以使用Format()。我应该注意,它不是表演者,但确实有一些不错的功能
Select DateTime = GetDate()
,Formatted = format(GetDate(),'yyyyMMddHHmmssfff')
返回
DateTime Formatted
2017-04-26 12:04:01.363 20170426120401363
答案 1 :(得分:1)
在MS SQL 2012+中,有FORMAT
函数:
SELECT FORMAT(GETDATE(), 'yyyyMMddHHmmssfff')
答案 2 :(得分:0)
您可以使用format命令(https://docs.microsoft.com/en-us/sql/t-sql/functions/format-transact-sql)来访问.net提供的所有功能。大概你使用的是相对最新版本的sql server - 这是你在发布问题时应该提供的信息。作为一个例子(我不知道你的oracle格式产生了什么):
declare @x datetime;
set @x = '20170415 23:55:01.003';
select @x, FORMAT(@x, 'yyyyMMdd HHmmss.fff');
答案 3 :(得分:0)
在SQL Server 2012之前,您可以使用convert()
styles和replace()
select
iso_format = convert(varchar(23),getdate(),121)
, numbers_only = replace(replace(replace(replace(
convert(varchar(23),getdate(),121)
,'-',''),':',''),' ',''),'.','')
rextester演示:http://rextester.com/YMMG65247
返回:
+-------------------------+-------------------+
| iso_format | numbers_only |
+-------------------------+-------------------+
| 2017-04-26 18:15:42.590 | 20170426181542590 |
+-------------------------+-------------------+
请注意format()
确实存在一些性能问题,即使在SQL Server 2012+上,这也是一个合理的选择。 format()
is nice and all, but… - Aaron Berrtand