2009年5月22日 星期五

將某日期欄位與數值欄位相加後做條件判斷

假設有某一資料表為Schedule裡面有三個欄位分別為
AdName(廣告名稱),ShowDate(播放日期)和ShowDays(播放天數),內容如下

AdName

ShowDate

ShowDays

廣告A

2009-05-10 00:00:00

10

廣告B

2009-05-15 00:00:00

5

廣告C

2009-05-20 00:00:00

3


所以
廣告A 的期限到2009-05-20 00:00:00
廣告B 的期限到2009-05-20 00:00:00
廣告C 的期限到2009-05-23 00:00:00

假設我們要找尋2009-05-19還在播放的廣告就可以使用以下語法

SELECT * FROM Schedule
WHERE DATE_ADD(ShowDate,INTERVAL ShowDays DAY ) > DATE('2009-05-27 00:00:00')
AND DATE(ShowDate) <= DATE('2009-05-27 00:00:00')

2009年5月21日 星期四

在做資料SELECT時,順便將特定值轉換成要顯示的文字

有時候我們會將某些欄位以數字的資料形態來儲存
假設有一Table(Student)含有三個欄位1. Number(long) 2.Name(varchar) 3.Sex(bool)
內容如下:
Number  Name Sex
9701001 Jim  1
9701002 Jack  1
9701003 May  0

我們希望Select出來的DataTable如下:
Number  Name Sex
9701001 Jim  男
9701002 Jack 
9701003 May  

這時可以利用以下的語法來解決
SELECT Number,Name,CASE Sex WHEN '0' THEN '女' WHEN'1' THEN '男' END AS Sex FROM Student