0

我有一个日期作为形式的 varchar

DD/MM/YYYY HH:MM:SS AM

例如

16/3/2012 4:39:26 PM

CONVERT()我在MSDN 页面中看不到有效的格式选项

我是否遗漏了什么或者我必须先重新格式化 varchar 字段?

编辑:

更正了格式,抱歉

4

3 回答 3

6

一旦你的故事直截了当,你会想要其中之一:

-- if you really meant dd/mm/yyyy then:

SELECT CONVERT(DATETIME, '16/3/2012 4:39:26 PM', 103);

-- if you really meant mm/dd/yyyy then:

SELECT CONVERT(DATETIME, '3/16/2012 4:39:26 PM', 101);

但同意马迪瓦南的意见。不要使用错误的数据类型存储日期,如果必须,请使用明确的格式!

于 2012-07-26T11:18:40.153 回答
4
  1. 始终使用正确的DATETIME数据类型来存储日期
  2. YYYYMMDD并且YYYYMMDD HH:MM:SS是明确的日期格式

有关更多信息,请参阅此

http://beyondrelational.com/modules/2/blogs/70/posts/10898/understanding-datetime-column-part-ii.aspx

于 2012-07-26T11:18:50.950 回答
-3

这将起作用。

DECLARE @dt varchar(100)='2012/3/16 4:39:26 PM'
select convert(datetime,@dt,101)
于 2012-07-26T11:19:31.440 回答