2014-04-01 23 views
0

我有一个名为“DateInput”一栏已值:作为转换科拉姆以不同的格式

04/01/2014 
03/21/2014 
03/20/2014 
--mm/dd/yyyy 

所以我想改变它,以DD/MM/YY

01/04/2014 
21/03/2014 
20/03/2014 

做吧更新声明? 我试图用我的代码:

update dondh 
set DateInput = CONVERT(nvarchar(50),DateInput,103) 

但我遇到一个错误:

一个nvarchar数据类型为datetime数据类型的转换导致超出范围的值。

请帮我解决这个问题。

+2

那么列的实际类型是什么?它应该是'date',它没有*根据存储的文本格式,超过整数值被存储为“十进制”或“十六进制”... –

+0

Oracle没有'convert'功能。你确定你在使用Oracle吗?错误信息听起来不像。 –

回答

-1
Update table 
Set column = to_char(to_date(column,'mm/dd/yyyy'),'dd/mm/yy'); 

这应该工作,如果它的Oracle和列数据类型在NOT日期。如果它的日期,那么你可以跳过to_date函数。

干杯

0

这可能工作:

update dondh set DateInput = to_char(to_date(DateInput, 'mm/dd/yyyy'), 'dd/mm/yyyy'); 

但是作为乔恩说,日期栏应该是日期,而不是字符串...

-1

这适用于SQL Server中,假设该列NVARCHAR类型:

UPDATE tablename 
SET columnname = CONVERT (NVARCHAR(10), CONVERT (DATE, columnname, 101), 103)