我想这nvarchar列于日期时间格式转换:找不到SQL Server中的日期样式格式2012
"29/12/14 07:46:20 PM"
这种风格是好的,但一直没有时间:
SELECT CONVERT(datetime, nvarcharDateColumn, 3) AS [DD/MM/YY]
如何我可以转换它并保留所有的日期部分(日期+时间)?
我想这nvarchar列于日期时间格式转换:找不到SQL Server中的日期样式格式2012
"29/12/14 07:46:20 PM"
这种风格是好的,但一直没有时间:
SELECT CONVERT(datetime, nvarcharDateColumn, 3) AS [DD/MM/YY]
如何我可以转换它并保留所有的日期部分(日期+时间)?
SQL Server中的日期时间数据类型没有“格式”。它本地是一个8字节的二进制值。到nvarchar的字符串转换为datetime,请使用转换与nvarchar列作为第二个参数:
SELECT CONVERT(datetime, nvarcharColumnWithDateAndTime, 3) AS NativeDateTime
FROM dbo.YourTable;
注意此查询中显示的日期时间格式是由您使用的应用程序,而不是SQL Server数据库来确定。另外,考虑将表格数据类型更改为datetime以避免数据完整性问题; nvarchar将允许存储无效日期。
他希望转换从'DATETIME'转换为'VARCHAR',而不是相反。 – 2015-02-07 13:56:45
@noryap,最近的评论说它是一个从csv导入的nvarchar列。 – 2015-02-07 13:58:47
@ roryap问题中的第一句话完全相反。 – DavidG 2015-02-07 14:01:35
此一有时间,但包括毫秒......它可能是太多了:)
SELECT CONVERT(VARCHAR(30), GETDATE(), 131)
这输出'18/04/1436 8:55: 53:903AM'。 – 2015-02-07 13:56:12
哦,废话。正在寻找正确的格式,但完全忘记了实际的日期(facepalm) – 2015-02-07 13:58:39
这是我想到一个艰巨的任务。这是最好的,我可以拿出:
DECLARE @MyDate DATETIME
SET @MyDate = GETDATE()
SELECT CONVERT(VARCHAR(50), @MyDate, 3) + ' ' + CONVERT(VARCHAR(50), CONVERT(TIME, @MyDate), 100)
你正在做的相反。 'CONVERT(VARCHAR(8),GETDATE(),3)'将DATETIME转换为'VARCHAR(8)'。你在第一行说你想将'NVARCHAR'转换成'DATETIME'。这是什么? – 2015-02-07 13:36:43
为什么要在SQL中格式化日期?在你的UI层做到这一点。 – DavidG 2015-02-07 13:38:49
@ roryap问题是我无法找到合适的日期样式。我知道你在说什么。这只是一个例子。 – Ariox66 2015-02-07 13:48:01