撤掉了一個廣告,感覺非常的差,懷疑東懷疑西的,廣告就不要怕被人點,林北朋友多,情義相挺,這是中國人的人情味,哪像歪國人朋友間只有錢和性,還說什麼專家評估,加賽啦(台)
閱讀全文...
Happy coding.
The secret to creativity is knowing how to hide your sources.— Albert Einstein
Good artists copy, great artists steal. – Pablo Picasso
2011年8月25日 星期四
小孩房間裝修-完工囉
一直想要把小孩的房間獨立出來,所以家裡陸陸續續經過一番整理,丟了一堆東西,但家裡好像還是一團亂,東西還是一堆,加上時間很零碎,所以進度一直很慢。
這星期剛好二姊帶著爸媽去大陸旅遊回來,爸媽又有空多待幾天,因此決定把之前規劃一直要做的小孩房間地板加高裝修,趁這幾天把它完成。
這幾天買的木材、合板、鐵釘和油漆等材料費:11860元。
人工都是自家人完成的:無價。
第一天的成果:牆面油漆及釘地版基本架構。
由於太久沒油漆了,第一遍的油漆很多都被牆壁吃進去了,預計後續會上第二遍。至於地板,為了不破壞原本的磁磚,不採用一般裝潢做法將骨架和地上釘死,採和牆壁緊緊卡住接合,理論上如果可以,整片新架的木造地版可以抬起來。
第二天的成果:第二遍牆面油漆、骨架和基礎地版完成。
今天會有大量的木工,有很多東西要鋸和釘,特地請假一天和老爸合力來完成它。手動來鋸這些東西,果然很消耗體力,晚上休息時,果然累慘了。中午還跑了一趟材料店,把缺少的木材買齊,老闆還很阿莎力的鐵釘免錢。
上午釘完地版的骨架,骨架感覺很不規則的樣子,這是為了配合合板的尺寸排出來,要讓所有的合板都能找到位置來和骨架釘在一起。
下午完成了基本地板,為了鋸這些六分的合板,真的傷透腦筋,因為空間不夠,造成要鋸的時候,不容易找到施力點,真的鋸完後,累斃了。要釘的時候,要找到骨架的位置,還好事先有量測,最後蠻順利的完成。
基本上能裝修的時間蠻短的,在社區有規定早上九點到十二點及下午一點半到五點才能做這些裝潢的工作,所以居本上要先申請,然後跟時間賽跑,在申請的這幾天趕快完工,經過兩天的努力,剩下櫻花木木板和第三遍牆面油漆要完成了。
感覺時間又回到那年的夏天,那時利用每天晚上和爸、媽及大哥四個人,努力的把家裡的廚房及浴室蓋完成,完成後一切的辛苦都是值得的。
已經完工好幾天了,櫻花木的地板感覺非常不錯,房間整理後,非常受到小孩的喜愛,只等了一天就說要睡自己的房間了,期間只有大兒子第一晚不習慣又跑回來跟我們睡,之後都是兩個小孩自己睡一間了。
閱讀全文...
這星期剛好二姊帶著爸媽去大陸旅遊回來,爸媽又有空多待幾天,因此決定把之前規劃一直要做的小孩房間地板加高裝修,趁這幾天把它完成。
這幾天買的木材、合板、鐵釘和油漆等材料費:11860元。
人工都是自家人完成的:無價。
第一天的成果:牆面油漆及釘地版基本架構。
由於太久沒油漆了,第一遍的油漆很多都被牆壁吃進去了,預計後續會上第二遍。至於地板,為了不破壞原本的磁磚,不採用一般裝潢做法將骨架和地上釘死,採和牆壁緊緊卡住接合,理論上如果可以,整片新架的木造地版可以抬起來。


第二天的成果:第二遍牆面油漆、骨架和基礎地版完成。
今天會有大量的木工,有很多東西要鋸和釘,特地請假一天和老爸合力來完成它。手動來鋸這些東西,果然很消耗體力,晚上休息時,果然累慘了。中午還跑了一趟材料店,把缺少的木材買齊,老闆還很阿莎力的鐵釘免錢。


上午釘完地版的骨架,骨架感覺很不規則的樣子,這是為了配合合板的尺寸排出來,要讓所有的合板都能找到位置來和骨架釘在一起。


下午完成了基本地板,為了鋸這些六分的合板,真的傷透腦筋,因為空間不夠,造成要鋸的時候,不容易找到施力點,真的鋸完後,累斃了。要釘的時候,要找到骨架的位置,還好事先有量測,最後蠻順利的完成。
基本上能裝修的時間蠻短的,在社區有規定早上九點到十二點及下午一點半到五點才能做這些裝潢的工作,所以居本上要先申請,然後跟時間賽跑,在申請的這幾天趕快完工,經過兩天的努力,剩下櫻花木木板和第三遍牆面油漆要完成了。
感覺時間又回到那年的夏天,那時利用每天晚上和爸、媽及大哥四個人,努力的把家裡的廚房及浴室蓋完成,完成後一切的辛苦都是值得的。
已經完工好幾天了,櫻花木的地板感覺非常不錯,房間整理後,非常受到小孩的喜愛,只等了一天就說要睡自己的房間了,期間只有大兒子第一晚不習慣又跑回來跟我們睡,之後都是兩個小孩自己睡一間了。
閱讀全文...
2011年8月23日 星期二
iPhone 小知識:關閉訊息(SMS)預覽功能
iPhone實在很夯,難免有時候朋友會互相借來借去試玩一下,如果這時突然收到簡訊(SMS),iPhone預設會預覽顯示這訊息,要如何避免這尷尬的情況,只要從 設定→訊息,將 顯示預覽 關掉,以後收到簡訊時,就不會預覽顯示內容了。
閱讀全文...
閱讀全文...
iPhone 小知識:避免付費陷阱,請關閉In-App Purchases 功能
現在許多 app 都免費下載,但遊戲內卻藏著 In-App Purchases 去購買更進階的東西,有時候會誤觸到,或是小孩拿去玩不小心按到,到時帳單來了就很可觀了。有些人會把信用卡資料拿掉來避免這情況,其實 iOS 有內建限制功能可以關閉此 In-App Purchases 功能,這樣就不會誤觸陷阱了。
1. 選 設定(Settings) → 一般(General) → 取用限制(Restrictions)。
2. 輸入密碼進入此區。
3. 按 啟動限制(Enable Restrictions),再輸入新的密碼。
4. 其中一項名為 應用程式內建購買功能(In-App Purchases),將它關掉(Off)。
5. 如果想完全關閉所有購買 Apps 的功能,可將 購買應用程式(App Purchases) 關掉。
閱讀全文...
1. 選 設定(Settings) → 一般(General) → 取用限制(Restrictions)。
2. 輸入密碼進入此區。
3. 按 啟動限制(Enable Restrictions),再輸入新的密碼。
4. 其中一項名為 應用程式內建購買功能(In-App Purchases),將它關掉(Off)。
5. 如果想完全關閉所有購買 Apps 的功能,可將 購買應用程式(App Purchases) 關掉。
閱讀全文...
2011年8月22日 星期一
iPhone 小知識:擷取畫面的快速鍵
擷取畫面是個常用的功能,不管是 Windows 或 Mac 都定義了快速鍵來擷取視窗畫面,iPhone 也同樣提供了快速鍵,首先按著 Power 鍵再同時按一下 Home 鍵,就會聽到「相機快門聲」一下,代表已將圖像儲存到你的”照片”位置之內。
閱讀全文...
閱讀全文...
iPhone小知識:免解Lock,快速拒接電話
一般的時候,收到來電,要先以 Slide 方式解鎖,然後才可接聽。但有得時候,實在是不方便接電話,例如開會中,要如何快速切斷來電,此時最方的方式就是連續快速按兩次 Power 鍵!這樣就能把來電掛斷了!
閱讀全文...
閱讀全文...
iPhone 小知識:當機後,強制關機方法
不管有沒有JB,當遇到按power鍵也無法關機時,這時就是使用強制關機得時機:同時按下 Power 鍵及 Home 鍵數秒,這樣便會強制關掉你的 iPhone 了。
閱讀全文...
閱讀全文...
2011年8月19日 星期五
101年國家考試時程表下載
考選部101年度舉辦各種考試期日計畫提報考試院100年8月11日第11屆第149次會議報告,預定明(101)年度辦理19次考試,其中公務人員考試 11次、專門職業及技術人員考試8次。考選部長賴峰偉表示,為服務各地應考人,經考量地區衡平性及人力、物力之調度,並兼顧地方政府負荷,101年導遊領隊人員考試、高考三級暨普通考試等2種考試,均增設澎湖、金門、馬祖考區;101年身心障礙特考增設宜蘭考區;101年司法官考試第二試、律師考試第二試,均增設高雄考區。
國家考試自95年開始提供網路報名服務,初期考量城鄉數位落差情形,採用網路報名及通訊報名雙軌化作業,供應考人自行選擇報名方式,並逐年視考試性質及規模推動國家考試採網路報名單軌制,至100年除身心障礙特考及原住民族考試外,其餘國家考試已全面採用網路報名,考選部經統計100年身心障礙特考、原住民族考試採網路報名比例分別達75.26%、90.04%,決定自101年起國家考試全面實施網路報名單軌化作業。
賴部長同時表示,配合航海人員執業資格取得及發證事宜,自101年7月起全部改由職業主管機關交通部統一辦理,原航海人員考試科別及格制保留期間,由考選部賡續辦理舊案補考,101年航海人員考試併同牙醫師等項考試舉辦2次考試;101年7月舉辦之第二次牙醫師等項考試並增加藥師類科。因應內政部入出國及移民署專業人力需求,將於101年3月舉辦公務人員特種考試移民行政人員考試。另為落實中醫師教、考、用合一,提升考試信度與效度,中醫師高考自101年 7月1日開始施行分試考試制度。配合內政部「充實地方政府社工人力配置及進用計畫」需增加社工人數,未來研究社會工作師考試制度改革,101年將辦理二次專技人員社會工作師考試,請應考人特別注意。
考選部表示,101年度舉辦各種考試期日計畫表係經函請銓敘部及行政院人事行政局提報101年度請辦各種公務人員考試計畫,併同預定舉辦之各種專門職業及技術人員考試,參酌用人機關建議之預定考試日期,及各種考試期日計畫之規劃原則:(一)入闈時間避免重疊(二)閱卷時間避免重疊(三)考試時間避免與國中基本學力測驗、大學指定科目考試等大型考試重疊(四)考試日期避免與選舉日、重要節日、重大活動重疊(五)考試期日安定性等原則,並考量本部人力調度、考試規模、考場洽借等因素妥為規劃。有關明(101)年度各項考試期日計畫表已登載於考選部全球資訊網(http://www.moex.gov.tw)最新消息,有意加入公職行列或取得專業證照之民眾可逕至上開網頁查詢,及早規劃、準備考試事宜。
101年舉辦各種考試期日計畫表_公告版+考試代碼.pdf
閱讀全文...
國家考試自95年開始提供網路報名服務,初期考量城鄉數位落差情形,採用網路報名及通訊報名雙軌化作業,供應考人自行選擇報名方式,並逐年視考試性質及規模推動國家考試採網路報名單軌制,至100年除身心障礙特考及原住民族考試外,其餘國家考試已全面採用網路報名,考選部經統計100年身心障礙特考、原住民族考試採網路報名比例分別達75.26%、90.04%,決定自101年起國家考試全面實施網路報名單軌化作業。
賴部長同時表示,配合航海人員執業資格取得及發證事宜,自101年7月起全部改由職業主管機關交通部統一辦理,原航海人員考試科別及格制保留期間,由考選部賡續辦理舊案補考,101年航海人員考試併同牙醫師等項考試舉辦2次考試;101年7月舉辦之第二次牙醫師等項考試並增加藥師類科。因應內政部入出國及移民署專業人力需求,將於101年3月舉辦公務人員特種考試移民行政人員考試。另為落實中醫師教、考、用合一,提升考試信度與效度,中醫師高考自101年 7月1日開始施行分試考試制度。配合內政部「充實地方政府社工人力配置及進用計畫」需增加社工人數,未來研究社會工作師考試制度改革,101年將辦理二次專技人員社會工作師考試,請應考人特別注意。
考選部表示,101年度舉辦各種考試期日計畫表係經函請銓敘部及行政院人事行政局提報101年度請辦各種公務人員考試計畫,併同預定舉辦之各種專門職業及技術人員考試,參酌用人機關建議之預定考試日期,及各種考試期日計畫之規劃原則:(一)入闈時間避免重疊(二)閱卷時間避免重疊(三)考試時間避免與國中基本學力測驗、大學指定科目考試等大型考試重疊(四)考試日期避免與選舉日、重要節日、重大活動重疊(五)考試期日安定性等原則,並考量本部人力調度、考試規模、考場洽借等因素妥為規劃。有關明(101)年度各項考試期日計畫表已登載於考選部全球資訊網(http://www.moex.gov.tw)最新消息,有意加入公職行列或取得專業證照之民眾可逕至上開網頁查詢,及早規劃、準備考試事宜。
101年舉辦各種考試期日計畫表_公告版+考試代碼.pdf
閱讀全文...
2011年8月18日 星期四
VMware Player 免費的虛擬機器軟體
虛擬機器,就是在電腦內用一個檔案去模擬一個區塊,讓你透過虛擬機器軟體去玩那個區塊,可以安裝測試各類的OS系統,不用在費神去搞雙系統、三系統或多重開機,就算玩壞了,也不會影響到主系統,把檔案砍掉,再重新透過虛擬機器軟體安裝一次就行了。
現今最常用就是Mcrosoft Virtual PC、Oracle VirtualBox和VMware系列。Virtual PC新版的要認證,一般人常用的是VirtualBox,因為它免費,至於VMware幾乎都是商業版,而免錢的VMware Workstation精簡版VMware Player,之前功能受限,只能讀取VMware Workstation建立的虛擬檔案,在VMware Player 3時,多了可以建立虛擬機器的功能,而且執行又很快速,慢慢受到使用者的青睞。
A. Download VMware Player
B. Install VMware Player
C. Create Virtual Machine
1. 來到下載頁面,下載VMware Player前,需先註冊成會員,填上相關資料,請確認EMAIL可以正常收信,按Continue。
2. 繼續填上聯絡資訊,並同意註冊條款後,按Register
3. VMware 會將啟動帳號的連結 email 到 步驟2 填寫的 email 帳號內,請直接點選郵件內的連結來啟動帳號。
4. 在啟動畫面上輸入你的密碼,然後按 continue 來啟動帳號。
5. 啟動後畫面會導回原先下載頁面,並已登入帳號。按 continue 到實際下載網頁。
6. 剛啟動完帳號,似乎沒辦法正確導到實際下載網頁,我是在隔天登入後,下載連結才出現,請選取所需檔案下載。
1. 執行下載回來的VMware-player-3.x.x-xxx.exe,按"Next"進入下一個步驟
2. 選擇所要安裝的路徑,按"Next"進入下一個步驟
3. 選擇是否勾選每次執行VMware Player時,就去檢查是否有新的版本,按"Next"進入下一步
4. 選擇是否勾選送出資料幫助改善VMware Player,按"Next"進入下一步
5. 選擇要在哪些地方產生執行VMware Player的捷徑,按"Next"進入下一步
6. 安裝前最後確認,按"Continue"就會開始安裝
7. 安裝完成後,需要重新啟動電腦來完成最後的安裝設定。
1. 執行VMware Player後,選擇"Create a new Virtual Machine"
2. 詢問作業系統的安裝ISO來源。請選擇"I will install the operating system later",按"Next"進入下一步驟
3. 選擇要安裝的作業系統類型及版本,按"Next"進入下一步驟
4. 輸入虛擬機器的名稱及安裝路徑,按"Next"進入下一個步驟
5. 決定虛擬機器的硬碟容量大小,如輸入20G,並不代表一開始就會占據20G大小,而是虛擬機器最大只能20G,按"Next"進入下一個步驟
6. 確認設定的資訊,按"Finish"來完成。
7. 進階設定,選擇Edit virtual machine setting
8. 選擇"CD/DVD",再點選"Use ISO Image file",找到要安裝的ISO檔案後按"OK"
9. 選擇Play virtual machine就可以啟動虛擬機器了
閱讀全文...
現今最常用就是Mcrosoft Virtual PC、Oracle VirtualBox和VMware系列。Virtual PC新版的要認證,一般人常用的是VirtualBox,因為它免費,至於VMware幾乎都是商業版,而免錢的VMware Workstation精簡版VMware Player,之前功能受限,只能讀取VMware Workstation建立的虛擬檔案,在VMware Player 3時,多了可以建立虛擬機器的功能,而且執行又很快速,慢慢受到使用者的青睞。
A. Download VMware Player
B. Install VMware Player
C. Create Virtual Machine
A. Download VMware Player
1. 來到下載頁面,下載VMware Player前,需先註冊成會員,填上相關資料,請確認EMAIL可以正常收信,按Continue。

2. 繼續填上聯絡資訊,並同意註冊條款後,按Register

3. VMware 會將啟動帳號的連結 email 到 步驟2 填寫的 email 帳號內,請直接點選郵件內的連結來啟動帳號。

4. 在啟動畫面上輸入你的密碼,然後按 continue 來啟動帳號。

5. 啟動後畫面會導回原先下載頁面,並已登入帳號。按 continue 到實際下載網頁。

6. 剛啟動完帳號,似乎沒辦法正確導到實際下載網頁,我是在隔天登入後,下載連結才出現,請選取所需檔案下載。

B. Install VMware Player
1. 執行下載回來的VMware-player-3.x.x-xxx.exe,按"Next"進入下一個步驟

2. 選擇所要安裝的路徑,按"Next"進入下一個步驟

3. 選擇是否勾選每次執行VMware Player時,就去檢查是否有新的版本,按"Next"進入下一步

4. 選擇是否勾選送出資料幫助改善VMware Player,按"Next"進入下一步

5. 選擇要在哪些地方產生執行VMware Player的捷徑,按"Next"進入下一步

6. 安裝前最後確認,按"Continue"就會開始安裝


7. 安裝完成後,需要重新啟動電腦來完成最後的安裝設定。

C. Create Virtual Machine
1. 執行VMware Player後,選擇"Create a new Virtual Machine"

2. 詢問作業系統的安裝ISO來源。請選擇"I will install the operating system later",按"Next"進入下一步驟

3. 選擇要安裝的作業系統類型及版本,按"Next"進入下一步驟

4. 輸入虛擬機器的名稱及安裝路徑,按"Next"進入下一個步驟

5. 決定虛擬機器的硬碟容量大小,如輸入20G,並不代表一開始就會占據20G大小,而是虛擬機器最大只能20G,按"Next"進入下一個步驟

6. 確認設定的資訊,按"Finish"來完成。

7. 進階設定,選擇Edit virtual machine setting

8. 選擇"CD/DVD",再點選"Use ISO Image file",找到要安裝的ISO檔案後按"OK"


9. 選擇Play virtual machine就可以啟動虛擬機器了

閱讀全文...
2011年8月16日 星期二
Oracle去除空白(Trim Space)
往往在操作PL/SQL時會遇到所謂的靈異現象,明明兩字串肉眼看都一模一樣,可是程式就是不往設定的流程跑,會發生此問題,主要是PL/SQL和Oracle在對資料型態不同的字串處理方式不一樣。
PL/SQL以varchar2類型接收Oracle的char類型,將會自動去除後端的空白;以char類型接收varchar2類型,會補滿空白。
Oracle的varchar2接收char時,不會去除空白;Oracle的char接收varchar2會補滿空白。
因此當兩字串比較時,就會因空白的差異而得到非預期的結果。此時建議用
閱讀全文...
PL/SQL以varchar2類型接收Oracle的char類型,將會自動去除後端的空白;以char類型接收varchar2類型,會補滿空白。
Oracle的varchar2接收char時,不會去除空白;Oracle的char接收varchar2會補滿空白。
因此當兩字串比較時,就會因空白的差異而得到非預期的結果。此時建議用
RTRIM
函示來去除尾端的空白,讓程式正常運行。閱讀全文...
2011年8月15日 星期一
Oracle日期運算問題
不管是資料庫操作或是Shell script撰寫,日期的運算加減是常會遇到的一個問題,Oracle提供了一些常用的運算函數來操作這些日期的運算問題。
EX:
SQL> SELECT SYSDATE FROM dual;
SYSDATE
----------
2011/08/15
2. 日期加數值
EX:
SQL> SELECT SYSDATE+10 FROM dual;
SYSDATE+10
----------
2011/08/25
3. 日期減數值
EX:
SQL> SELECT SYSDATE-15 FROM dual;
SYSDATE-15
----------
2011/07/31
4. 日期相減
EX:
SQL> SELECT SYSDATE- TO_DATE('2011/08/14') FROM dual;
SYSDATE-TO_DATE('2011/08/14')
-----------------------------
1.51289352
SQL> SELECT TRUNC(SYSDATE- TO_DATE('2011/08/14')) FROM dual;
TRUNC(SYSDATE-TO_DATE('2011/08/14'))
------------------------------------
1
5. 日期相減獲得小時差距
EX:
SQL> SELECT TRUNC((SYSDATE - TO_DATE('2011/08/14'))*24) FROM dual;
TRUNC((SYSDATE-TO_DATE('2011/08/14'))*24)
-----------------------------------------
36
SQL> SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011/08/15 12:21:52
6. 日期相減獲得分鐘差距
EX:
SQL> SELECT TRUNC((SYSDATE - TO_DATE('2011/08/14'))*24*60) FROM dual;
TRUNC((SYSDATE-TO_DATE('2011/08/14'))*24*60)
--------------------------------------------
2182
7. 日期相減獲得秒數差距
EX:
SQL> SELECT TRUNC((SYSDATE - TO_DATE('2011/08/14'))*24*60*60) FROM dual;
TRUNC((SYSDATE-TO_DATE('2011/08/14'))*24*60*60)
-----------------------------------------------
130993
8. 日期加 N 小時
EX:
SQL> SELECT TO_CHAR(SYSDATE+(1/24), 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE+(1/
-------------------
2011/08/15 13:24:37
9. 日期加 N 分鐘
EX:
SQL> SELECT TO_CHAR(SYSDATE+(1/1440), 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE+(1/
-------------------
2011/08/15 12:26:11
10. 日期加 N 秒數
EX:
SQL> SELECT TO_CHAR(SYSDATE+(1/86400), 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE+(1/
-------------------
2011/08/15 12:25:33
11. ADD_MONTHS(d, n)
從時間點 d 加上 n 小時
EX:
SQL> SELECT SYSDATE, ADD_MONTHS(SYSDATE, 3) FROM dual;
SYSDATE ADD_MONTHS
---------- ----------
2011/08/15 2011/11/15
12. LAST_DAY(d)
從時間點 d 起,當月的最後一天
EX:
SQL> SELECT SYSDATE, LAST_DAY(SYSDATE) 月底 FROM dual;
SYSDATE 月底
---------- ----------
2011/08/15 2011/08/31
13. NEXT_DAY(d, char)
從時間點 d 開始,下星期幾的日期
char: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
EX:
SQL> SELECT SYSDATE, NEXT_DAY(SYSDATE, 'MONDAY') "下星期一" FROM dual;
SYSDATE 下星期一
---------- ----------
2011/08/15 2011/08/22
SQL> SELECT SYSDATE, NEXT_DAY(SYSDATE, 'MONDAY')+1 FROM dual;
SYSDATE NEXT_DAY(S
---------- ----------
2011/08/15 2011/08/23
14. MONTHS_BETWEEN(d1, d2)
計算兩日期之間的相隔月數
EX:
SQL> SELECT TRUNC(MONTHS_BETWEEN('2011/08/31','2011/07/01')) FROM dual;
TRUNC(MONTHS_BETWEEN('2011/08/31','2011/07/01'))
------------------------------------------------
1
以15號為四捨五入
SQL> SELECT ROUND(MONTHS_BETWEEN('2011/08/31','2011/07/01')) FROM dual;
ROUND(MONTHS_BETWEEN('2011/08/31','2011/07/01'))
------------------------------------------------
2
15. NEW_TIME(d, z1, z2)
轉換新時區
EX:
SQL> SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') "遠東地區" ,
2 TO_CHAR(NEW_TIME(SYSDATE,'EST','GMT'),'YYYY/MM/DD HH24:MI:SS') "格林威治"
3 FROM dual;
遠東地區 格林威治
------------------- -------------------
2011/08/15 13:57:47 2011/08/15 18:57:47
16. ROUND(d[, fmt])
對日期作四捨五入的運算
月份以每月15號為基準
年份以六月為基準
EX:
SQL> SELECT SYSDATE,ROUND(SYSDATE,'MONTH') FROM dual;
SYSDATE ROUND(SYSD
---------- ----------
2011/08/15 2011/08/01
SQL> SELECT SYSDATE,ROUND(SYSDATE,'YEAR') FROM dual;
SYSDATE ROUND(SYSD
---------- ----------
2011/08/15 2012/01/01
17. TRUNC(d[, fmt])
對日期作無條件捨去的運算
EX:
SQL> SELECT SYSDATE, TRUNC(SYSDATE,'YEAR') FROM dual;
SYSDATE TRUNC(SYSD
---------- ----------
2011/08/15 2011/01/01
SQL> SELECT SYSDATE, TRUNC(SYSDATE,'MONTH') FROM dual;
SYSDATE TRUNC(SYSD
---------- ----------
2011/08/15 2011/08/01
閱讀全文...
1. SYSDATE + or - 天數
EX:
SQL> SELECT SYSDATE FROM dual;
SYSDATE
----------
2011/08/15
2. 日期加數值
EX:
SQL> SELECT SYSDATE+10 FROM dual;
SYSDATE+10
----------
2011/08/25
3. 日期減數值
EX:
SQL> SELECT SYSDATE-15 FROM dual;
SYSDATE-15
----------
2011/07/31
4. 日期相減
EX:
SQL> SELECT SYSDATE- TO_DATE('2011/08/14') FROM dual;
SYSDATE-TO_DATE('2011/08/14')
-----------------------------
1.51289352
SQL> SELECT TRUNC(SYSDATE- TO_DATE('2011/08/14')) FROM dual;
TRUNC(SYSDATE-TO_DATE('2011/08/14'))
------------------------------------
1
5. 日期相減獲得小時差距
EX:
SQL> SELECT TRUNC((SYSDATE - TO_DATE('2011/08/14'))*24) FROM dual;
TRUNC((SYSDATE-TO_DATE('2011/08/14'))*24)
-----------------------------------------
36
SQL> SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE,'YY
-------------------
2011/08/15 12:21:52
6. 日期相減獲得分鐘差距
EX:
SQL> SELECT TRUNC((SYSDATE - TO_DATE('2011/08/14'))*24*60) FROM dual;
TRUNC((SYSDATE-TO_DATE('2011/08/14'))*24*60)
--------------------------------------------
2182
7. 日期相減獲得秒數差距
EX:
SQL> SELECT TRUNC((SYSDATE - TO_DATE('2011/08/14'))*24*60*60) FROM dual;
TRUNC((SYSDATE-TO_DATE('2011/08/14'))*24*60*60)
-----------------------------------------------
130993
8. 日期加 N 小時
EX:
SQL> SELECT TO_CHAR(SYSDATE+(1/24), 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE+(1/
-------------------
2011/08/15 13:24:37
9. 日期加 N 分鐘
EX:
SQL> SELECT TO_CHAR(SYSDATE+(1/1440), 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE+(1/
-------------------
2011/08/15 12:26:11
10. 日期加 N 秒數
EX:
SQL> SELECT TO_CHAR(SYSDATE+(1/86400), 'YYYY/MM/DD HH24:MI:SS') FROM dual;
TO_CHAR(SYSDATE+(1/
-------------------
2011/08/15 12:25:33
11. ADD_MONTHS(d, n)
從時間點 d 加上 n 小時
EX:
SQL> SELECT SYSDATE, ADD_MONTHS(SYSDATE, 3) FROM dual;
SYSDATE ADD_MONTHS
---------- ----------
2011/08/15 2011/11/15
12. LAST_DAY(d)
從時間點 d 起,當月的最後一天
EX:
SQL> SELECT SYSDATE, LAST_DAY(SYSDATE) 月底 FROM dual;
SYSDATE 月底
---------- ----------
2011/08/15 2011/08/31
13. NEXT_DAY(d, char)
從時間點 d 開始,下星期幾的日期
char: SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
EX:
SQL> SELECT SYSDATE, NEXT_DAY(SYSDATE, 'MONDAY') "下星期一" FROM dual;
SYSDATE 下星期一
---------- ----------
2011/08/15 2011/08/22
SQL> SELECT SYSDATE, NEXT_DAY(SYSDATE, 'MONDAY')+1 FROM dual;
SYSDATE NEXT_DAY(S
---------- ----------
2011/08/15 2011/08/23
14. MONTHS_BETWEEN(d1, d2)
計算兩日期之間的相隔月數
EX:
SQL> SELECT TRUNC(MONTHS_BETWEEN('2011/08/31','2011/07/01')) FROM dual;
TRUNC(MONTHS_BETWEEN('2011/08/31','2011/07/01'))
------------------------------------------------
1
以15號為四捨五入
SQL> SELECT ROUND(MONTHS_BETWEEN('2011/08/31','2011/07/01')) FROM dual;
ROUND(MONTHS_BETWEEN('2011/08/31','2011/07/01'))
------------------------------------------------
2
15. NEW_TIME(d, z1, z2)
轉換新時區
EX:
SQL> SELECT TO_CHAR(SYSDATE,'YYYY/MM/DD HH24:MI:SS') "遠東地區" ,
2 TO_CHAR(NEW_TIME(SYSDATE,'EST','GMT'),'YYYY/MM/DD HH24:MI:SS') "格林威治"
3 FROM dual;
遠東地區 格林威治
------------------- -------------------
2011/08/15 13:57:47 2011/08/15 18:57:47
16. ROUND(d[, fmt])
對日期作四捨五入的運算
月份以每月15號為基準
年份以六月為基準
EX:
SQL> SELECT SYSDATE,ROUND(SYSDATE,'MONTH') FROM dual;
SYSDATE ROUND(SYSD
---------- ----------
2011/08/15 2011/08/01
SQL> SELECT SYSDATE,ROUND(SYSDATE,'YEAR') FROM dual;
SYSDATE ROUND(SYSD
---------- ----------
2011/08/15 2012/01/01
17. TRUNC(d[, fmt])
對日期作無條件捨去的運算
EX:
SQL> SELECT SYSDATE, TRUNC(SYSDATE,'YEAR') FROM dual;
SYSDATE TRUNC(SYSD
---------- ----------
2011/08/15 2011/01/01
SQL> SELECT SYSDATE, TRUNC(SYSDATE,'MONTH') FROM dual;
SYSDATE TRUNC(SYSD
---------- ----------
2011/08/15 2011/08/01
閱讀全文...
Oracle與日期有關的常用函數
Oracle 用來取得目前系統時間的函數為sysdate。
EX:
SQL> SELECT sysdate FROM dual;
SYSDATE
---------
15-AUG-11
*更改目前session日期顯示格式
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
Session altered.
SQL> SELECT sysdate FROM dual;
SYSDATE
----------
2011-08-15
常用的日期格式:
1. YYYY/MM/DD
YYYY 年(4位)
MM 月份(2位)
DD 日期(2位)
SQL> SELECT TO_CHAR(sysdate, 'YYYY/MM/DD') FROM dual;
TO_CHAR(SY
----------
2011/08/15
2. 取得星期幾
Sunday=1, Monday=2, ...
SQL> SELECT TO_CHAR(sysdate, 'D') FROM dual;
T
-
2
SQL> SELECT TO_CHAR( TO_DATE('2011/08/14'), 'D') FROM dual;
T
-
1
3. DDD 一年的第幾天
SQL> SELECT TO_CHAR(sysdate, 'DDD') FROM dual;
TO_
---
227
4. WW 一年的第幾週
SQL> SELECT TO_CHAR(sysdate, 'WW') FROM dual;
TO
--
33
5. W 一月的第幾週
SQL> SELECT TO_CHAR(sysdate, 'W') FROM dual;
T
-
3
6. YYYY/MM/DD HH24:MI:SS AM
YYYY 年
MM 月份
DD 日期
HH24/HH HH24表採24小時制
MI 分鐘
SS 秒數
AM/PM 顯示上/下午
SQL> SELECT TO_CHAR(sysdate, 'YYYY/MM/DD HH24:MI:SS AM') FROM dual;
TO_CHAR(SYSDATE,'YYYY/
----------------------
2011/08/15 11:48:43 AM
SQL> SELECT TO_CHAR(sysdate, 'YYYY/MM/DD HH24:MI:SS PM') FROM dual;
TO_CHAR(SYSDATE,'YYYY/
----------------------
2011/08/15 11:49:03 AM
7. J 顯示Juilan Day, BC 4712/01/01為1
SQL> SELECT TO_CHAR(sysdate, 'J') FROM dual;
TO_CHAR
-------
2455789
SQL> SELECT TO_CHAR(TO_DATE('2011/08/14'),'J') FROM dual;
TO_CHAR
-------
2455788
8. RR/MM/DD
公元 2000 問題
00-49 表下世紀
50-99 表本世紀
SQL> SELECT to_DATE('99/12/31','RR/MM/DD') FROM dual;
TO_DATE('9
----------
1999-12-31
SQL> SELECT TO_DATE('02/02/02','RR/MM/DD') FROM dual;
TO_DATE('0
----------
2002-02-02
SQL> SELECT TO_DATE('49/12/31','RR/MM/DD') FROM dual;
TO_DATE('4
----------
2049-12-31
SQL> SELECT TO_DATE('50/01/01','RR/MM/DD') FROM dual;
TO_DATE('5
----------
1950-01-01
閱讀全文...
EX:
SQL> SELECT sysdate FROM dual;
SYSDATE
---------
15-AUG-11
*更改目前session日期顯示格式
SQL> ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD';
Session altered.
SQL> SELECT sysdate FROM dual;
SYSDATE
----------
2011-08-15
常用的日期格式:
1. YYYY/MM/DD
YYYY 年(4位)
MM 月份(2位)
DD 日期(2位)
SQL> SELECT TO_CHAR(sysdate, 'YYYY/MM/DD') FROM dual;
TO_CHAR(SY
----------
2011/08/15
2. 取得星期幾
Sunday=1, Monday=2, ...
SQL> SELECT TO_CHAR(sysdate, 'D') FROM dual;
T
-
2
SQL> SELECT TO_CHAR( TO_DATE('2011/08/14'), 'D') FROM dual;
T
-
1
3. DDD 一年的第幾天
SQL> SELECT TO_CHAR(sysdate, 'DDD') FROM dual;
TO_
---
227
4. WW 一年的第幾週
SQL> SELECT TO_CHAR(sysdate, 'WW') FROM dual;
TO
--
33
5. W 一月的第幾週
SQL> SELECT TO_CHAR(sysdate, 'W') FROM dual;
T
-
3
6. YYYY/MM/DD HH24:MI:SS AM
YYYY 年
MM 月份
DD 日期
HH24/HH HH24表採24小時制
MI 分鐘
SS 秒數
AM/PM 顯示上/下午
SQL> SELECT TO_CHAR(sysdate, 'YYYY/MM/DD HH24:MI:SS AM') FROM dual;
TO_CHAR(SYSDATE,'YYYY/
----------------------
2011/08/15 11:48:43 AM
SQL> SELECT TO_CHAR(sysdate, 'YYYY/MM/DD HH24:MI:SS PM') FROM dual;
TO_CHAR(SYSDATE,'YYYY/
----------------------
2011/08/15 11:49:03 AM
7. J 顯示Juilan Day, BC 4712/01/01為1
SQL> SELECT TO_CHAR(sysdate, 'J') FROM dual;
TO_CHAR
-------
2455789
SQL> SELECT TO_CHAR(TO_DATE('2011/08/14'),'J') FROM dual;
TO_CHAR
-------
2455788
8. RR/MM/DD
公元 2000 問題
00-49 表下世紀
50-99 表本世紀
SQL> SELECT to_DATE('99/12/31','RR/MM/DD') FROM dual;
TO_DATE('9
----------
1999-12-31
SQL> SELECT TO_DATE('02/02/02','RR/MM/DD') FROM dual;
TO_DATE('0
----------
2002-02-02
SQL> SELECT TO_DATE('49/12/31','RR/MM/DD') FROM dual;
TO_DATE('4
----------
2049-12-31
SQL> SELECT TO_DATE('50/01/01','RR/MM/DD') FROM dual;
TO_DATE('5
----------
1950-01-01
閱讀全文...
用 Smarty 開發第一個程式
一個 Smarty 程式主要來兩個部分來組成:php程式和html(樣版)。html(樣版)放在templates目錄下,Smarty建議用tpl作為樣版的副檔名(不是tpl也可以)。php程式和樣版分開放在不同的目錄,可以方便控管權限,只開放樣版目錄給UI設計師,這樣就不用擔心他們會異動到PHP相關程式。
樣版 first.tpl 內容:
<html>
<head>
<title>Smarty</title>
</head>
<body>
{* Hello again *}
Hello, {$name}!
</body>
</html>
說明:
樣版註解:在Smarty中以"{*"和"*}"所包起來的片段,會被Smarty視為註解。
標籤定義符號:在Smarty中以{}包起來。
指定變數:$name便是Smarty指定變數的方式,這和PHP是一樣的。
故 {$name} 的作用就像PHP中 <?php echo $name; ?> 相類似。
程式 first.php 內容:
<?php
// 載入 Smarty 物件類別檔
require('Smarty/Smarty.class.php');
// 建立 Smarty 物件
$smarty = new Smarty();
/* 定義 Smarty 的工作路徑
** 一般在開發 Smarty 程式時,有兩個物件屬性一定要指定。
** template_dir 指定存放樣版的路徑。
** complie_dir 指定存放編譯好的樣版的路徑。
** 此兩個路徑必須是實體路徑,這樣才能夠正確的存取它們。
*/
$smarty->setTemplateDir('D:/WebServer/wwwroot/demo/templates');
$smarty->setCompileDir('D:/WebServer/wwwroot/demo/templates_c');
/* 指定變數
** 整支程式的關鍵點,透過assign函式來指定結果到變數。
** assign函式的第一個變數是樣版的變數名稱,第二個變數是PHP的變數名稱。
** 兩個變數名稱可以不一樣,但為了方便管理,通常會指定成同樣的變數名稱。
*/
$smarty->assign('name', 'World');
// 顯示結果,指定讀取樣版
$smarty->display('first.tpl');
?>
打開瀏覽器,鍵入http://localhost:8081/demo/first.php,假設一切沒問題,會看到下面的畫面:
編譯後的樣版,可以在templates_c目錄底下找到,檔案名稱會是一長串的怪名字,檢視內容:
<?php /* Smarty version Smarty-3.0.8, created on 2011-07-22 16:05:14
compiled from "D:/WebServer/wwwroot/demo/templates\first.tpl" */ ?>
<?php /*%%SmartyHeaderCode:33754e292f3adf9af9-73651535%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
$_smarty_tpl->decodeProperties(array (
'file_dependency' =>
array (
'45c799dd90618608878cbe989324a5084622b683' =>
array (
0 => 'D:/WebServer/wwwroot/demo/templates\\first.tpl',
1 => 1311320453,
2 => 'file',
),
),
'nocache_hash' => '33754e292f3adf9af9-73651535',
'function' =>
array (
),
'has_nocache_code' => false,
)); /*/%%SmartyHeaderCode%%*/?>
<html>
<head>
<title>Smarty</title>
</head>
<body>
Hello, <?php echo $_smarty_tpl->getVariable('name')->value;?>
!
</body>
</html>
其中 {$name} 被替代成 <?php echo $_smarty_tpl->getVariable('name')->value;?>
檔案開頭加入了編譯資訊。除非樣版也做任何異動,不然往後 Smarty 就會使用此編譯後的樣版來輸出結果。
閱讀全文...
樣版 first.tpl 內容:
<html>
<head>
<title>Smarty</title>
</head>
<body>
{* Hello again *}
Hello, {$name}!
</body>
</html>
說明:
樣版註解:在Smarty中以"{*"和"*}"所包起來的片段,會被Smarty視為註解。
標籤定義符號:在Smarty中以{}包起來。
指定變數:$name便是Smarty指定變數的方式,這和PHP是一樣的。
故 {$name} 的作用就像PHP中 <?php echo $name; ?> 相類似。
程式 first.php 內容:
<?php
// 載入 Smarty 物件類別檔
require('Smarty/Smarty.class.php');
// 建立 Smarty 物件
$smarty = new Smarty();
/* 定義 Smarty 的工作路徑
** 一般在開發 Smarty 程式時,有兩個物件屬性一定要指定。
** template_dir 指定存放樣版的路徑。
** complie_dir 指定存放編譯好的樣版的路徑。
** 此兩個路徑必須是實體路徑,這樣才能夠正確的存取它們。
*/
$smarty->setTemplateDir('D:/WebServer/wwwroot/demo/templates');
$smarty->setCompileDir('D:/WebServer/wwwroot/demo/templates_c');
/* 指定變數
** 整支程式的關鍵點,透過assign函式來指定結果到變數。
** assign函式的第一個變數是樣版的變數名稱,第二個變數是PHP的變數名稱。
** 兩個變數名稱可以不一樣,但為了方便管理,通常會指定成同樣的變數名稱。
*/
$smarty->assign('name', 'World');
// 顯示結果,指定讀取樣版
$smarty->display('first.tpl');
?>
打開瀏覽器,鍵入http://localhost:8081/demo/first.php,假設一切沒問題,會看到下面的畫面:
編譯後的樣版,可以在templates_c目錄底下找到,檔案名稱會是一長串的怪名字,檢視內容:
<?php /* Smarty version Smarty-3.0.8, created on 2011-07-22 16:05:14
compiled from "D:/WebServer/wwwroot/demo/templates\first.tpl" */ ?>
<?php /*%%SmartyHeaderCode:33754e292f3adf9af9-73651535%%*/if(!defined('SMARTY_DIR')) exit('no direct access allowed');
$_smarty_tpl->decodeProperties(array (
'file_dependency' =>
array (
'45c799dd90618608878cbe989324a5084622b683' =>
array (
0 => 'D:/WebServer/wwwroot/demo/templates\\first.tpl',
1 => 1311320453,
2 => 'file',
),
),
'nocache_hash' => '33754e292f3adf9af9-73651535',
'function' =>
array (
),
'has_nocache_code' => false,
)); /*/%%SmartyHeaderCode%%*/?>
<html>
<head>
<title>Smarty</title>
</head>
<body>
Hello, <?php echo $_smarty_tpl->getVariable('name')->value;?>
!
</body>
</html>
其中 {$name} 被替代成 <?php echo $_smarty_tpl->getVariable('name')->value;?>
檔案開頭加入了編譯資訊。除非樣版也做任何異動,不然往後 Smarty 就會使用此編譯後的樣版來輸出結果。
閱讀全文...
在Windows安裝Smarty
Smarty是php最常被採用的樣版,本篇文章將介紹如何在Windows系統安裝和測試Smarty。
請利用解壓縮軟體將下載回來的 Smarty-3.0.8.tar.gz 解開。
其中 demo 資料夾,可以用來驗證是否安裝成功。
然而 libs 資料夾,才是所需的主程式,裡面應該會有以下檔案:
plugins:Plugins 存放目錄
sysplugins:核心檔案存放目錄
debug.tpl:偵錯控制台樣版檔
Smarty.class.php:Smarty主要類別檔
將 libs 更名為 Smarty ,並將整個資料移至原先存放 php 的目錄內(D:\WebServer\php)。
接者修改 php.ini ,找到 include_path設定,將值 D:\WebServer\php 加入。
include_path = ".;D:\WebServer\php\PEAR;D:\WebServer\php"
這樣一來只要在程式的開頭加入下列的敘述,就能正確的引入 Smarty 物件類別檔。
<?php
require ('Smarty/Smarty.class.php');
// ....
?>
Note: 只要 php.ini 有任何異動,就必須重新啟動 Apache 來使新設定生效。
接著修改 index.php,找到
require ('../libs/Smarty.class.php');
將其改成
require ('Smarty/Smarty.class.php');
打開瀏覽器,鍵入http://http://localhost:8081/demo/index.php,得到以下畫面表示安裝成功。
參考:官方網站上的 Quick Install,但其主要針對 unix like 的環境,做目錄權限的設定,Windows沒像那麼複雜,但要注意目錄是否被設成唯讀,會造成無法寫入或編譯。
閱讀全文...
Install Smarty
在 Smarty 官方網站 可以下載安裝檔。此時最新版本為3.0.8。請利用解壓縮軟體將下載回來的 Smarty-3.0.8.tar.gz 解開。
其中 demo 資料夾,可以用來驗證是否安裝成功。
然而 libs 資料夾,才是所需的主程式,裡面應該會有以下檔案:
plugins:Plugins 存放目錄
sysplugins:核心檔案存放目錄
debug.tpl:偵錯控制台樣版檔
Smarty.class.php:Smarty主要類別檔
將 libs 更名為 Smarty ,並將整個資料移至原先存放 php 的目錄內(D:\WebServer\php)。
接者修改 php.ini ,找到 include_path設定,將值 D:\WebServer\php 加入。
include_path = ".;D:\WebServer\php\PEAR;D:\WebServer\php"
這樣一來只要在程式的開頭加入下列的敘述,就能正確的引入 Smarty 物件類別檔。
<?php
require ('Smarty/Smarty.class.php');
// ....
?>
Note: 只要 php.ini 有任何異動,就必須重新啟動 Apache 來使新設定生效。
Test Smarty
將 demo 資料夾移至預設網站主要根目錄下(D:\WebServer\wwwroot)。接著修改 index.php,找到
require ('../libs/Smarty.class.php');
將其改成
require ('Smarty/Smarty.class.php');
打開瀏覽器,鍵入http://http://localhost:8081/demo/index.php,得到以下畫面表示安裝成功。
參考:官方網站上的 Quick Install,但其主要針對 unix like 的環境,做目錄權限的設定,Windows沒像那麼複雜,但要注意目錄是否被設成唯讀,會造成無法寫入或編譯。
閱讀全文...
訂閱:
文章 (Atom)