DateTime類型在SQL與C#中都是存在的,在與數據庫的交互中,這種數據類型也是最麻煩的一種,
但相信經過我下面的解釋後大家會對這種數據類型了如指掌,下面我們就來玩轉DateTime:
首先我們講SQL中的DateTime,
用SQL語句向數據庫中添加一條DateTime類型的記錄我們有兩種寫法:
一種是硬寫,一種是利用SQL中的日期函數。
1. 硬寫
這種寫法不常用,但是你會通過這種寫法了解一些東西:
insert into CustomerInfo(birthday) values(1985-09-16)
上面的語句我們向用戶表中插入了一條生日記錄,這裡將日期用單引號括了起來,
有人會說不括也是可以的,沒錯,但是寫上面的年月日,不加括號是可以的,
但是想將生日設置為:1985-09-16 12:16:31,精確到秒時,不加括號就會出錯,
所以為了便於記憶,也為了防止出錯,建議大家在用硬寫這種方式時加上括號。
2. 用SQL中的日期函數
SQL中的日期函數有好幾個,這裡不做詳細的解釋,我將在下一篇文章中為大家詳細說說。
最常用的日期函數就是GetDate(),這個函數的作用是調用當前時間,它的格式類似於2009-09-10 14:51:32.107
最後那三位數是格林威治時間的格式,不用管它,
次函數用在SQL語句中的寫法是:
update dbo.CustomerInfo set birthday = GetDate() where customerInfoId = 13
接下來我們再來了解一下C#中的DateTime,
C#中的DateTime是一個對象,它擁有許多自己的屬性和方法,呵,這又是要專門用一篇文章來解釋的東西,
我們現在只需了解DateTime擁有這三個方法即可:
ToString()、ToShortDateString()、ToShortTimeString()。
這三個方法是DateTime身上最常用的東西,
ToString()獲得的東西類似於2009-09-10 14:51:32;
ToShortDateString()則類似於2009-09-10;
ToShortTimeString()的類似於14:51:32。
當我們連接數據庫,用C#語句將SQL語句傳給SQL時要注意一個小細節,這也是我犯過的錯誤,
很微小的錯誤,曾讓我郁悶半個下午,
注意,這上面sqlStr的第三行,填充birthday的位置是沒有單引號的!
這點一定要注意注意。