在sql server中转换日期时间
如何转换下面的日期时间格式 2010-10-2511:13:36.700 进入 2010年10月25日或2010年10月25日00:00:00.000在sql server中转换日期时间,sql,sql-server,sql-server-2005,tsql,date-formatting,Sql,Sql Server,Sql Server 2005,Tsql,Date Formatting,如何转换下面的日期时间格式 2010-10-2511:13:36.700 进入 2010年10月25日或2010年10月25日00:00:00.000 SELECT convert(VARCHAR, getdate(),106) 这将为您提供2010年10月25日的 及 这将为您提供2010年10月25日检查这是否有助于您: SELECT REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-') 你可以得到更多信息 警察局。Stacko
SELECT convert(VARCHAR, getdate(),106)
这将为您提供2010年10月25日的
及
这将为您提供2010年10月25日
检查这是否有助于您:
SELECT REPLACE(CONVERT(VARCHAR(11), GETDATE(), 106), ' ', '-')
你可以得到更多信息
警察局。Stackoverflow有时可能过于沉迷,你可能想在“2010年10月25日”之前试试谷歌
假设值是作为字符串而不是日期时间数据类型提供的:
SELECT REPLACE(CONVERT(VARCHAR, CAST('2010-10-25 11:13:36.700' AS DATETIME), 106), ' ', '-')
有关其他格式,请参见,尽管您请求的格式需要后期处理
获取“2010-10-25 00:00:00.000”
最好的方法是使用DATEADD&DATEDIFF:
SELECT DATEADD(d, DATEDIFF(dd, 0, '2010-10-25 11:13:36.700'), 0)
参考资料:
测试
返回:
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
补遗
由于您使用的是SQL Server 2005,您可以通过创建一个SQLCLR函数来简化日期格式,该函数允许您使用.NET日期格式。选择CONVERT(NVARCHAR(20),getDATE(),105)请重试
SELECT CONVERT(varchar, GETDATE(), 1) --12/30/06
SELECT CONVERT(varchar, GETDATE(), 2) --06.12.30
SELECT CONVERT(varchar, GETDATE(), 3) --30/12/06
SELECT CONVERT(varchar, GETDATE(), 4) --30.12.06
SELECT CONVERT(varchar, GETDATE(), 5) --30-12-06
SELECT CONVERT(varchar, GETDATE(), 6) --30 Dec 06
SELECT CONVERT(varchar, GETDATE(), 7) --Dec 30, 06
SELECT CONVERT(varchar, GETDATE(), 10) --12-30-06
SELECT CONVERT(varchar, GETDATE(), 11) --06/12/30
SELECT CONVERT(varchar, GETDATE(), 12) --061230
SELECT CONVERT(varchar, GETDATE(), 23) --2006-12-30
SELECT CONVERT(varchar, GETDATE(), 101) --12/30/2006
SELECT CONVERT(varchar, GETDATE(), 102) --2006.12.30
SELECT CONVERT(varchar, GETDATE(), 103) --30/12/2006
SELECT CONVERT(varchar, GETDATE(), 104) --30.12.2006
SELECT CONVERT(varchar, GETDATE(), 105) --30-12-2006
SELECT CONVERT(varchar, GETDATE(), 106) --30 Dec 2006
SELECT CONVERT(varchar, GETDATE(), 107) --Dec 30, 2006
SELECT CONVERT(varchar, GETDATE(), 110) --12-30-2006
SELECT CONVERT(varchar, GETDATE(), 111) --2006/12/30
SELECT CONVERT(varchar, GETDATE(), 112) --20061230
通过CONVERT()函数执行并不困难,但在应用程序代码中执行几乎总是比在sql中执行要好。@Joel Coehoorn:假设这只是用于表示。对于GROUP BY或ORDER BY,日期操纵可能是必需的…最后一个示例,应该是2010-10-25 00:00:00.000,而不是2009…?请解释您的代码的作用以及它是如何作用的。右侧显示的输出以及它是如何作用的。欲知详情
col1 col2
-------------------------------------
25-Oct-2010 2010-10-25 00:00:00.000
SELECT CONVERT(varchar, GETDATE(), 1) --12/30/06
SELECT CONVERT(varchar, GETDATE(), 2) --06.12.30
SELECT CONVERT(varchar, GETDATE(), 3) --30/12/06
SELECT CONVERT(varchar, GETDATE(), 4) --30.12.06
SELECT CONVERT(varchar, GETDATE(), 5) --30-12-06
SELECT CONVERT(varchar, GETDATE(), 6) --30 Dec 06
SELECT CONVERT(varchar, GETDATE(), 7) --Dec 30, 06
SELECT CONVERT(varchar, GETDATE(), 10) --12-30-06
SELECT CONVERT(varchar, GETDATE(), 11) --06/12/30
SELECT CONVERT(varchar, GETDATE(), 12) --061230
SELECT CONVERT(varchar, GETDATE(), 23) --2006-12-30
SELECT CONVERT(varchar, GETDATE(), 101) --12/30/2006
SELECT CONVERT(varchar, GETDATE(), 102) --2006.12.30
SELECT CONVERT(varchar, GETDATE(), 103) --30/12/2006
SELECT CONVERT(varchar, GETDATE(), 104) --30.12.2006
SELECT CONVERT(varchar, GETDATE(), 105) --30-12-2006
SELECT CONVERT(varchar, GETDATE(), 106) --30 Dec 2006
SELECT CONVERT(varchar, GETDATE(), 107) --Dec 30, 2006
SELECT CONVERT(varchar, GETDATE(), 110) --12-30-2006
SELECT CONVERT(varchar, GETDATE(), 111) --2006/12/30
SELECT CONVERT(varchar, GETDATE(), 112) --20061230