CONVERT(DATETIME,DATETIME,131)

时间:2015-01-23 20:11:27

标签: sql sql-server date datetime

我似乎无法想出这个,并尝试搜索stackoverflow。

我有两行我要转换日期。我没有创建这些数据类型或表,也不想更改日期类型,以防它混淆。

我有一个表,其中一列是类型(datetime2(7),而不是null)。 我有另一个表,其中列的类型(datetime,null)。

当我进行查询时,它们会分别返回一个看起来像

的时间
2015-01-25 10:11:50.9050000

2015-01-19 10:24:42.323

以上是在我进行任何转换或投射之前。

我想将那些格式转换为

dd / mm / yy hh:mi:ss:mmmAM

所以我使用下面的代码(分别)

SELECT TagName, CONVERT(DateTime, EventStamp, 131) AS ConvertedTime
FROM ALMDB.dbo.Hist

SELECT TagName, CONVERT(DateTime, DateTime, 131) AS ConvertedTime
FROM ALMDB.dbo.Hist

但它似乎不起作用。它会丢弃ss(秒)部分,并且月/日/年部分不会根据样式131出现。任何人都知道为什么?它看起来像下面

25/01/2015 10:11 AM
19/01/2015 10:24 AM

我尝试了很多方法但似乎没有用。我正在运行MS SQL server 2012,只是在SQL Server Manager Studio中进行查询。

2 个答案:

答案 0 :(得分:0)

如果您想转换为输出格式,您希望将转换为datetime 一个字符串。

试试这个:

SELECT TagName, CONVERT(varchar(255), EventStamp, 131) AS ConvertedTime
FROM ALMDB.dbo.Hist

答案 1 :(得分:0)

您的代码尝试从datetime转换为datetime,这不是CONVERT的意图。如果您希望控制输出中日期的字符串表示形式,请转换为nvarchar:CONVERT(NVARCHAR(25), DateField, 131)。如果您想基于每个会话更改datetime字段的默认字符串表示形式,请使用SET DATEFORMAT命令。 https://msdn.microsoft.com/en-us/library/ms189491.aspx