欢迎访问我的个人博客:三秋邦

SQL中的case then用法以及格式轉換

 

View Code
select P_RNO,P_DATE,P_REDATE,P_EDATE,ENDCASETYPE,P_TCODE1,ENDCASETYPE  from PEAMAIN --原查詢語句
--
要轉換的格式
select ('府收'+P_RNO) as P_RNO,
Convert(varchar,(DateDiff(yyyy,CONVERT(datetime, '1911/1/1', 111 ),Convert(datetime,P_DATE,111))))+'/'+Convert(varchar,datepart(month,P_DATE))+'/'+Convert(varchar,datepart(day,P_DATE)) as P_DATE, --公元曆轉換為民國曆的格式的轉換
Convert(varchar,(DateDiff(yyyy,CONVERT(datetime, '1911/1/1', 111 ),Convert(datetime,P_REDATE,111))))+'/'+Convert(varchar,datepart(month,P_REDATE))+'/'+Convert(varchar,datepart(day,P_REDATE)) as P_REDATE,
Convert(varchar,(DateDiff(yyyy,CONVERT(datetime, '1911/1/1', 111 ),Convert(datetime,P_EDATE,111))))+'/'+Convert(varchar,datepart(month,P_EDATE))+'/'+Convert(varchar,datepart(day,P_EDATE)) as P_EDATE,
(case when ENDCASETYPE='n' then '未結案' when ENDCASETYPE='y' then '已結案' end) as ENDCASETYPE,--case when then的用法
P_TCODE1,
(case when ENDCASETYPE='n' then '回覆' when ENDCASETYPE='y' then '檢視' end) as work
from PEAMAIN

 

 

查詢後的數據效果圖

1、datepart的用法

語法形式:DATEPART(datepart,date)

DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

假设我们有下面这个 "Orders" 表:

我们使用如下 SELECT 语句:

View Code
SELECT DATEPART(yyyy,OrderDate) AS OrderYear,
DATEPART(month,OrderDate) AS OrderMonth,--month也可以用mm表示
DATEPART(day,OrderDate) AS OrderDay--day也可以用dd表示
FROM Orders
WHERE OrderId=1

结果:

2、Convertr的用法

 

 

CONVERT() 函数是把日期转换为新数据类型的通用函数。

 

CONVERT() 函数可以用不同的格式显示日期/时间数据。

語法格式:CONVERT(data_type(length),data_to_be_converted,style)如上面的代碼:Convert(datetime,P_DATE,111)

 

data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style 规定日期/时间的输出格式。

3、DateDiff的用法

 

DATEDIFF() 函数返回两个日期之间的天数。

語法格式:DATEDIFF(datepart,startdate,enddate)如上面的:DateDiff(yyyy,CONVERT(datetime, '1911/1/1', 111 ),Convert(datetime,P_DATE,111))

startdateenddate 参数是合法的日期表达式。

datepart 参数可以是下列的值:

 

 

posted @ 2012-01-12 17:52  追夢  阅读(818)  评论(0编辑  收藏  举报
欢迎访问我的个人博客:三秋邦