線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1155
推到 Plurk!
推到 Facebook!

有關MySQL year函式的問題?

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-16 10:29:15 IP:61.150.xxx.xxx 未訂閱
資料庫連接元件:zeosdbo 資料庫:MySQL 各位先進好! 我的表裡有一個欄位(Jdate)是varchar型, 格式為:XXXX年XX月XX日 例如: 2004年03月16日 在查詢時希望從Jdate分別取出年,月,日. 我記得Access可以直接使用 select * from table where year(Jdate)=2004 and month(Jdate)=03 and day(Jdate)=16 但在MySQL中: 1)使用year()不能出現年,月等中文 2)沒有day(),應使用dayofmonth() Q:如何可以解決問題1) ?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-16 14:26:38 IP:203.95.xxx.xxx 未訂閱
Hi, 你用 varchar 來放日期資料真的不是很理想, 像現在要取出年月日就比較麻煩, 若是你的資料格式都是確定為 xxxx年xx月xx日 的話, 建議你使用 MID function 來進行切割. 如: select mid(Jdate, 1, 4) as myYear, mid(Jdate, 7, 2) as myMonth, mid(Jdate, 11, 2) as myDay from xxx 這樣應該可以取得到!
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-16 14:48:30 IP:210.65.xxx.xxx 未訂閱
Hi mathewzhao,
引言:用 varchar 來放日期資料真的不是很理想
我也贊成 timhuang 大大的說法,因為前端必須做轉換 DateTimeToStr(),如果有兩台 Client 之 DateTime 格式設定不一樣會怎樣?會這樣問是我碰過有人就是這樣寫,結果導致DataBase 該欄位資料型態完全不一致,花了一番功夫才有辦法處理,請三思 發表人 -
------
Fishman
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-16 15:34:06 IP:61.150.xxx.xxx 未訂閱
感謝兩位前輩回應! 1)首先,我會將資料型varchar改為date     
引言:用 varchar 來放日期資料真的不是很理想, 像現在要取出年月日就比較麻煩
2)其次,我想問一下如果改用date,是不是有更簡便的方法?
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-17 09:37:58 IP:203.95.xxx.xxx 未訂閱
Hi, 將 varchar 轉為 Date 可以這樣下:    
select CONVERT(concat(mid(Jdate, 1, 4), '-', mid(Jdate, 7, 2), '-', mid(Jdate, 11, 2)), DATE) as myDate from xxx
若是要異動的話, 你可以重建一個 table 轉過來或是新增一個欄位如: Jdate2 型態為 DATE, 然後 update 一次後再將 Jdate 欄位移除後將 Jdate2 改名為 Jdate 即可. 將原來的 Jdate 寫入新的 Jdate2 欄位的方式如下:
update xxx set Jdate2 = CONVERT(concat(mid(Jdate, 1, 4), '-', mid(Jdate, 7, 2), '-', mid(Jdate, 11, 2)), DATE)
如此一來對 date, 或是 datetime 操作就可以使用完整的 datetime function 囉, 用 varchar 或是 char 存日期/時間是比較不理想的!
系統時間:2024-05-15 6:56:09
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!