上周五,要做一個php 同時對mysql數據庫和sqlserver數據庫的連接東東
以前一直在用mysql對sqlserver不是很熟悉,於是摸著石頭過河。沒有別的至少mysql和sqlserver還算是親戚
在做條件查詢的時候。出現了問題
首先是查詢出來的時間是這種格式的
11 30 2009 10:20:20AM
我打開sqlserver數據庫查看表中的數據
卻是2009-11-30 10:20:20.233
後來查了查好像sqlserver有個格式問題,但是輸出的時候要的是2009-11-01,沒有辦法,只能在查詢出數據後自己轉換一把了
在mysql下面的話
比如我想查找time在2009-11-01到2009-11-30時間段的數據
select * from table where time > '2009-11-01' and time < '2009-11-30';
我就畫了個虎,結果就不知道我的where跑哪去了,不起任何作用,
我想我的2009-11-01確實不好跟11 30 2009 10:20:20AM或者2009-11-30 10:20:20.233比較,至少可比性不大
於是我就轉換我的2009-11-01到11 01 2009 00:00:00AM和2009-11-01 00:00:00.000
再一比更不行。在“:”出錯誤。這不是找不自在嗎!
於是別別扭扭的找了一天也沒有點恍然小悟,不能因為這個小小問題,影響我的形象吧,今天天早早的就醒了,
昨天找到了sqlserver的時間轉換函數convert包括好多種,就是沒有2009-11-01這種格式,也不知道是我笨還是我笨
沒有辦法,只能中和一下,首先將2009-11-01轉換成20091101然後將11 30 2009 10:20:20AM或者2009-11-30 10:20:20.233轉換成20091130然後再比較,
別說,還真有結果了
select * from table where convert(varchar(10),date_time,112) !< $begin_date and convert(varchar(10),date_time,112) !> $end_date
(!< 和 !> 也差點絆我個跟頭)