2007-12-27

mssql只取得時間欄位中的日期資料(Get Date from DateTime)

DateTime的欄位內容為 2007/12/27 18:26:29.597
現在想要只取得2007/12/27而且要保持為日期型態.
也就是要取得2007/12/27 00:00:00的結果
原本是想用format的方式來取得字串結果,然後再轉型態.

不過這樣的語法似乎太長了點.
所以改成下面的方式

select dateadd(dd,0,datediff(dd,0,getdate()))

先使用datediff取得該日期的數值,
再使用dateadd去取得此數值所代表的日期.

雖然使用select cast(getdate() as int)雖然也是可以將日期轉為數值,
但是只要超過12:00就會取得隔天的日期(應該是4捨5入的原因)

select cast('2007/12/27 12:00:00' as datetime)
-- 2007-12-27 12:00:00 000
select cast(cast('2007/12/27 12:00:00' as datetime) as int)
-- 39442
select cast('2007/12/27 11:59:59' as datetime)
-- 2007-12-27 11:59:59
select cast(cast('2007/12/27 12:59:59' as datetime) as int)
-- 39941

所以還是使用datediff的方式來取得日期的數值比較好.

2007-12-26

玩玩紙模型

今天發現幾個不錯的紙模型網站

第一彈 : EX-S 鋼彈
EX-S PaperModel_02
原創者的網誌:http://blog.naver.com/7200ss
不過現在很難找到下載點了.所以要用力google一下

GUNDAM紙模型的下載與作品
如果是鋼彈迷的話可以到這挖寶,不過可能手腳要快點.

Canon的Creative Park
裡面的3D-papercraft有許多紙模型可以下載,
如果有打算做個城鎮的話,可以看一下他的craftown,
沒太多錢可以弄個鐵道模型城鎮的話,可以先玩玩這個.
另外他的buildings看起來也是超優的!
 

YAMAHA的Paper Craft
既然是YAMAHA的網站,
主要的當然就是摩托車的紙模型了!
不過除了摩托車外,還有一些動物及日本風情的紙模型也是不錯的!
另外,還有提供紙模型的教學
http://www.yamaha-motor.co.jp/global/entertainment/papercraft/howto/index.html
影片式的教學讓你一看就懂.
http://www.yamaha-motor.co.jp/global/entertainment/papercraft/howto/0002.html

3D紙模型網
我想只要有在玩紙模型的應該都知道這個網站!!

真的要去買台彩色印表機了...
不然我的機器人都只能是鐵灰色的...

2007-12-13

DateTime Formet 與 CultureInfo

今天收到一個問題,
是要將時間格式顯示為
Thu,13 Dec 2007 08:23:41 +08:00

大致上先想到的是取得格林威治時間
也就是用

DateTime.Now.ToUniversalTime().ToString()

因為台灣的時區是 +8,
所以取得的時間會是台灣時間減8小時.

他這樣的格式會顯示
2007/12/13 上午 08:23:41

然後在ToString()的格式加上"r"
如 :

DateTime.Now.ToUniversalTime().ToString("r");

這樣的結果會顯示
Thu, 13 Dec 2007 08:23:41 GMT

已經有點接近我們要的格式了,
不過還少了+08:00
查了一下,可以在格式中加個zzz來達成
但是zzz跟r似乎是不能一起使用.
所以改成如 :

DateTime.Now.ToUniversalTime().ToString("ddd,d MMM yyyy hh:mm:ss zzz");

這樣的結果變成
星期四,13 十二月 2007 08:23:41 +08:00

因為作業系統的地區與語言選項的設定是預設的中文(台灣)
所以會顯示中文字在時間字串中.
所以要再使用CultureInfo改一下.

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
DateTime.Now.ToUniversalTime().ToString("ddd,d MMM yyyy hh:mm:ss zzz",ci);

這時資料就會是以英文(美國)的格式呈現,如下:
Thu,13 Dec 2007 08:23:41 +08:00

上面這樣大致上就可以得到我們要的結果,
不過,每次顯示都要再丟ci進去.
所以,如果不想每次都丟ci的話,
那就是再加一行code
如下

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-US");
System.Threading.Thread.CurrentThread.CurrentCulture = ci;
DateTime.Now.ToUniversalTime().ToString("ddd,d MMM yyyy hh:mm:ss zzz");

到此.收工.

參考資料 :

Standard DateTime Format Strings
http://msdn2.microsoft.com/en-us/library/az4se3k1(VS.71).aspx

Custom DateTime Format Strings Output Examples
http://msdn2.microsoft.com/en-us/library/hzz3aycd.aspx

CultureInfo 類別
http://msdn2.microsoft.com/zh-tw/library/system.globalization.cultureinfo(VS.80).aspx

2007-12-07

Google的新服務 - Google Chart API

Google 的新服務 - Google Chart API,
幫你畫統計表....
透過url的方式,丟給他參數就會產生一張統計圖表
範例如下 : http://chart.apis.google.com/chart?cht=p3&chd=s:hW&chs=250x100&chl=Hello|World

自己寫的一個測試頁面.
(主要提供了五種類別的圖表11種格式.)
測試網址 : http://ajunlee.googlepages.com/GoogleChart.htm

雖然說用.Net開發畫圖表的程式已經比以前簡單許多.
但是,要在網站上有這樣的功能,
還是要有台可以跑.net程式的主機.
而現在這樣的功能,應該可以讓網頁小工具增色不少.
只是.用url的方式傳資料的話,資料長度應該還是會被限制住,
所以要畫複雜點的表格可能就比較有問題了!

相關網址:
Embed charts in webpages with one of our simplest APIs yet
Google Chart API

Google以後可以查祖譜嗎?

今天看到一篇INDISE的文章 : 比爾蓋茲和賈伯斯,他們的孩子都是 14 歲才能用手機 想說比爾蓋茲不是有點年紀了嗎? 他的小孩應該也都不小了. 他們14歲時應該還沒有甚麼智慧手機吧… 說不定還是在BB call的年代. 所以就好奇的用google查一下有沒...