SQL Server将Varchar转换为日期时间
我有这种日期格式:2011-09-28 18:01:00(在varchar中),我想将它转换为datetime更改为这种格式28-09-2011 18:01 :00。我该怎么做?SQL Server将Varchar转换为日期时间
SELECT CONVERT(Datetime, '2011-09-28 18:01:00', 120) -- to convert it to Datetime
SELECT CONVERT(VARCHAR(30), @date ,105) -- italian format [28-09-2011 18:01:00]
+ ' ' + SELECT CONVERT(VARCHAR(30), @date ,108) -- full date [with time/minutes/sec]
只记得datetime变量没有格式。如果您希望以某种格式显示,您必须将其转换为varchar。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-04-20 15:09:37
datetime没有格式,但你必须指定它如何重现文本(其中id是日/月......) – Zyku 2012-04-23 06:28:11
像这样
DECLARE @date DATETIME
SET @date = '2011-09-28 18:01:00'
select convert(varchar, @date,105) + ' ' + convert(varchar, @date,108)
'我想将它转换为datetime更改为这种格式28-09-2011 18:01:00。 - 你在哪里使用新的格式? – MatBailie 2012-04-20 13:27:50
这可行,但不需要四个转换器。查看迭戈的答案SELECT CONVERT(VARCHAR(30),GETDATE(),105) – daniloquio 2012-04-20 13:39:44
是的,Diego的答案需要将varchar(10)更改为(30)。然后它会工作。 – daniloquio 2012-04-20 17:45:51
你可以这样做,但它留下它作为一个varchar
declare @s varchar(50)
set @s = '2011-09-28 18:01:00'
select convert(varchar, cast(@s as datetime), 105) + RIGHT(@s, 9)
或
select convert(varchar(20), @s, 105)
这离开了时间 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz 2012-04-20 13:32:58
@zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz你说得对,修正了它。 – Taryn 2012-04-20 13:36:01
如已经所述,日期时间没有格式/字符串表示格式。
您可以使用某些格式更改字符串输出。
将字符串转换为datetime:
declare @date nvarchar(25)
set @date = '2011-09-28 18:01:00'
-- To datetime datatype
SELECT CONVERT(datetime, @date)
给出:
-----------------------
2011-09-28 18:01:00.000
(1 row(s) affected)
将其转换成字符串你想要的:
-- To VARCHAR of your desired format
SELECT CONVERT(VARCHAR(10), CONVERT(datetime, @date), 105) +' '+ CONVERT(VARCHAR(8), CONVERT(datetime, @date), 108)
给出:
-------------------
28-09-2011 18:01:00
(1 row(s) affected)
SELECT CONVERT(VARCHAR(10), GETDATE(), 105) + ' ' + CONVERT(VARCHAR(10), GETDATE(), 108)
你可以有各种不同的风格,以datetime conversion
:
http://www.w3schools.com/sql/func_convert.asp
这有值范围: -
CONVERT(data_type(length),expression,style)
对于样式值,
选择你需要的人l我需要106.
所有现有的我的答案有一个特定的链接到帮助网站,以便即使是初学者可以参考。这就是如何更加有用
尝试以下
select Convert(Varchar(50),yourcolumn,103) as Converted_Date from yourtbl
这RDBMS使用?因为日期功能可能不同 – Hajo 2012-04-20 13:21:39
@Hajo:我认为标题几乎可以解释它 – Quassnoi 2012-04-20 13:23:19
@Quassnoi它可能是微软的SQL服务器,但我不是100%确定,许多RDBMS可以是一个SQL服务器; – Hajo 2012-04-20 13:25:19