2014-01-21 83 views
-3

在数据库表我:选择日期在SQL查询

int day 
int month 
int year 

我想写一个选择查询显示日期:DD/MM/YYYY

我试试这个,但没有奏效:

1-

select (day + '\' + month + '\' + year) as xdate from table1 

,但给我一个错误

2-

select (day + '-' + month + '-' + year) as xdate from table1 

它返回这些字段的总和:2036代替21/1/2014

任何溶液?

+2

什么DBMS的字符串表示你正在用吗? – Kermit

+5

sql服务器,mysql,其他? – Mihai

+2

您可以使用[sqlfiddle](http://sqlfiddle.com/)重现此问题吗? –

回答

1

尝试是这样的:

select (cast(day as varchar(2)) + '/' 
    + cast(month as varchar(2)) + '/' 
    + cast(year as varchar(4))) as xdate 
from table1 
1

如果TSQL/SQL-SERVER,然后+只能来连接 ...所以在这种情况下,做你的号码一些转换:

select 
    CONVERT(VARCHAR, day) + '\' + CONVERT(VARCHAR, month) + '\' ... etc. 
1

由于您将int转换为Varchar,所以您需要使用CAST或CONVERT函数

CAST and CONVERT

尝试这样

select (Cast(day AS Varchar(10)) + '\' + Cast(month AS Varchar(10)) + '\' + Cast(year AS Varchar(10))) as xdate from table1 

(OR)

select (Cast(day AS Varchar(10)) + '-' + Cast(month AS Varchar(10)) + '-' + Cast(year AS Varchar(10))) as xdate from table1 
0

CONVERT(date, , 103)日期转换为在日/月/年的形式

SELECT CONVERT(date,DATEFROMPARTS([year],[month],[day]),103)