2011-12-26 76 views
0

表:如何更改日期格式

Dates (nvarchar) 
== 
23/02/2009 (dd/mm/yyyy) 
24/02/2009 
25/08/2009 
28/12/2011 
.... 

我想更改日期的形式是这样的(年月日)

试图查询

select cast(dates as datetime) from table1 

显示错误

ЮArithemetic表达式溢出

select Convert(char(10), dates, 112) from table1 

显示相同的值23/02/2009

上述查询不工作。

期望输出

20090232 
20090224 
20090825 
20111228 
... 

怎样进行查询?

+2

如果这些是**日期**-ö然后**为什么**是否将它们存储为'varchar'? –

回答

1

由于这些被存储为字符串数据,那么你可能也仅仅使用字符串函数给你想要的东西。

首先给你一个有效日期

select 
    cast(SUBSTRING(dates,4,2) + '/' + left(dates,2) + '/' + right(dates,4) as datetime) NowItsADateTime 
from DateTable 

第二,你问什么。

select right(dates,4) + SUBSTRING(dates,4,2) + left(dates,2) as YYYYMMDD 
from DateTable 
1

试试这个简单的查询:

SELECT DATEPART(yyyy,dates)+DATEPART(m,dates)+DATEPART(d,dates) FROM table1 

你可以得到这个链接的详细信息: sql-server-dates