上午从nvarchar转换为DateTime?

时间:2013-11-12 10:50:24

标签: sql sql-server datetime type-conversion

在我的表格中,我有myDatenvarchar(50)

我需要的结果是选择此日期/时间:07/11/2013 11:22:07

我需要从中获取07/11/2013 11:22:07 am(将am/pm添加到原始日期和时间)。

我尝试了所有内容,但只获取原始数据而没有上午/下午。

这是我的查询中的一个例子:

select convert(dateTime,myDate,100) as Date from Info

select convert(dateTime,myDate,0) as Date from Info

我错过了什么?

3 个答案:

答案 0 :(得分:0)

您可以使用以下查询获取AM / PM数据

declare @date datetime
select @date= CAST('07/11/2013 11:22:07' AS datetime)
select RIGHT ( CONVERT(VARCHAR,@date,9),2) 

答案 1 :(得分:0)

您的字段是NVARCHAR字段,因此只需返回它而不进行任何转换。在您的查询中,您将字符串表示转换为DATETIME类型并返回它。显示查询结果的浏览器软件将DateTime值转换为字符串表示形式以显示给您,转换格式取决于此软件,通常您可以更改它来更改Windows区域设置。

答案 2 :(得分:0)

try this !!

declare @date datetime
set @date='07/11/2013 11:22:07'

SELECT cast(convert(varchar(20),substring(convert(nvarchar(20),@date, 9), 0, 21) 
+ ' ' + substring(convert(nvarchar(30), @date, 9), 25, 2),105) as datetime)