我似乎无法想出这个,并尝试搜索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中进行查询。
答案 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