【发布时间】:2013-11-12 10:50:24
【问题描述】:
在我的表中,我有 myDate 类型为 nvarchar(50) 的列。
我需要的结果是选择这个日期/时间:07/11/2013 11:22:07
我需要从中获取07/11/2013 11:22:07 am(将am/pm 添加到原始日期和时间)。
我尝试了所有方法,但只获得了没有 am/pm 的原始数据。
这是我查询的一个例子:
select convert(dateTime,myDate,100) as Date from Info
或
select convert(dateTime,myDate,0) as Date from Info
我错过了什么?
【问题讨论】:
-
Bad habits to kick : mis-handling date / range queries - 你应该不将日期存储为字符串 - 你只是在自找麻烦。使用
DATE或DATETIME数据类型! -
(1) 因为您将日期存储为字符串,所以您需要先将其转换为
DATETIME:CAST(myDate AS DATETIME), (2 ) 然后pick one of the pre-existing styles forCONVERT,例如SELECT CONVERT(VARCHAR(50), CAST(myDate AS DATETIME), 100)- 如果这些样式都不完全符合您的需求,您要么必须使用FORMAT(在 SQL Server 2012 和更新版本中),要么自己做很多字符串修改跨度> -
我知道...但是我得到了这些数据作为事实,并且必须以这种方式使用它..
标签: sql sql-server datetime type-conversion