2017-02-14 111 views
-1

我有表名为PTBV有两列:Dateptbv varchar(50)[Column 1] varchar(50)如何在SQL Server 2008中将日期时间格式的字符串dd/mm/yy转换为日期时间?

我试图使用CONVERT()函数从存储在Dateptbv列中的字符串数据中获取实际的日期时间值。

下面是该列中的数据的例子:

 
"10/01/13" 
"11/01/13" 
"14/01/13" 
"15/01/13" 
"16/01/13" 
"17/01/13" 
"18/01/13" 
"21/01/13" 
"22/01/13" 
"24/01/13" 
"25/01/13" 
"28/01/13" 
"29/01/13" 
"30/01/13" 
"01/02/13" 
"04/02/13" 

注意,此示例中引号是数据的一部分和被存储在列中。否则,数据以dd/mm/yy格式存储。

不幸的是,我试过的每个日期样式都导致了错误消息。如何将此数据转换为DateTime值?

+0

你使用MySQL或MS SQL Server? (不要标记不涉及的产品。) – jarlh

+0

MS SQL!好的,我不会再次下一次,感谢您的建议 –

+0

图片已经是日期格式?你真实想要的.add预期的输出在这里 –

回答

1

如果我正确理解你的照片,你的列DateptbvVARCHAR(50)并且存储日期yy/mm/dd包裹在"个字符中。首先:如有可能,改变它!。尝试将值存储在适当类型的列中!

尝试

SELECT CONVERT(DATE,SUBSTRING(Dateptbv,2,8)),3) --3 for dd/mm/yy 

this link查找有关的CONVERT能力的更多细节。

+0

sqlfiddle:http://sqlfiddle.com/#!3/b3eb18/4 –

0

尝试下面的脚本

SELECT CAST(SUBSTRING(Dateptbv,2,8) AS DATE) 
FROM PTBV 
+0

我得到了这个答案:Msg 241,Level 16,State 1,Line2μ 转换日期和/或时间从字符串转换失败。 –

+0

这是文化依赖,因此是危险的。当涉及日期或时间值时,应该**从不**依靠隐式转换! – Shnugo

+0

@RobinHocepied您的系统 - 很可能 - 默认情况下期望使用不同的格式。这正是我的意见在我的意见... – Shnugo

相关问题