在SQL Server中将“2018-07-02 00:01:22.000”转换为“02-Jul-18”
我正在尝试将SQL Server中的“2018-07-02 00:01:22.000”转换为“02-Jul-18”。我使用基本的SQL Server转换函数尝试了以下几种可能性,但我无法获得解决方案在SQL Server中将“2018-07-02 00:01:22.000”转换为“02-Jul-18”,sql,sql-server,date,time,sql-server-2012,Sql,Sql Server,Date,Time,Sql Server 2012,我正在尝试将SQL Server中的“2018-07-02 00:01:22.000”转换为“02-Jul-18”。我使用基本的SQL Server转换函数尝试了以下几种可能性,但我无法获得解决方案 SELECT CONVERT(varchar(11), transfer_date, 106) DECLARE @Date AS DateTime = '2018-07-02 00:01:22.000' SELECT CONVERT(varchar(12), @Date, 106) 请尝试以下
SELECT CONVERT(varchar(11), transfer_date, 106)
DECLARE @Date AS DateTime = '2018-07-02 00:01:22.000'
SELECT CONVERT(varchar(12), @Date, 106)
请尝试以下代码行:
declare @Date as DateTime='2018-07-02 00:01:22.000'
select REPLACE(Convert(varchar(12),@Date,106),' ','-')
如果要将字符串“2018-07-02 00:01:22.000”转换为字符串“02-Jul-18”,则必须使用convert两次,一次将输入转换为日期,第二次将该日期转换为所需格式的字符串
SELECT
REPLACE(CONVERT(varchar,
CONVERT(datetime, '2018-07-02 00:01:22.000', 121),
106), ' ' , '-');
请注意,如果起始值已经是日期时间,则可以取消其中一个转换调用:
您可以尝试以下方法:
declare @mydate datetime2
declare @converted varchar(100)
set @mydate = cast('2018-07-02 00:01:22.000' as datetime2)
set @converted = replace(convert(varchar, @mydate , 106), ' ', '-')
select concat(left(@converted, 7), right(@converted, 2))
例如:
结果:2018年7月2日
单语句查询
下面的查询将有助于以DD-Mon-YY格式返回日期时间: 结果:
02-Jul-18
到目前为止,您尝试了什么?选择convertvarchar11,transfer_date,106您是否知道不能从一种数据类型转换为另一种数据类型?我是SQL的初学者,如果我错了,很抱歉。以后请编辑问题并添加您尝试过的内容。更妙的是,首先把它放在那里。在这些“2018年7月2日”之间需要一个“-”像这些-2018年7月2日这是非常简单的事情选择REPLACEConvertvarchar12,@Date,106,“,”使用replace@date“它工作得很好,伙计@zedfoxus。谢谢大家给我这个帖子。如果发现任何比这更好的,请随时发布。太好了。将问题的任何答案标记为最终答案,以结束问题。您正在使用许多函数。这是功能滥用。铸造、转换、更换、左侧、右侧和concat。你可以通过转换和替换实现同样的效果。谢谢,阿鲁尔·库马尔。很简单,很完美,这很好。我不知道选项6使用YY而不是YYYY。只要阅读文档就可以意识到:。你知道的越多!回答得好。
select
concat(
left (
replace (
convert(varchar, cast('2018-07-02 00:01:22.000' as datetime2), 106),
' ',
'-'
), 7)
, right (
replace (
convert(varchar, cast('2018-07-02 00:01:22.000' as datetime2), 106),
' ',
'-'
), 2)
)
DECLARE @Date AS DateTime = '2018-07-02 00:01:22.000';
SELECT REPLACE(CONVERT(VARCHAR(9), @Date, 6), ' ', '-');
02-Jul-18