前幾天被時間型別給鬱悶了,我要做這樣乙個工作,取出某天到某天的記錄,這些記錄都有乙個字段記錄著是什麼時候建立的,而且詳細到了秒。例如:
id createtime
1 2007-01-19 10:48:36
2 2007-01-19 23:35:36
3 2007-01-18 23:35:36
我要取出'2007-01-18'到'2007-01-19'的資料,其實這個需求並不難,所以當時直接就用where createtime between starttime and endtime,但是得到的結果卻沒有包含19號的資料,例如:
select * from t_timetest where [time] between '2007-1-18' and '2007-1-19'
得到的結果是:
3 2007-01-18 23:35:36.000
於是我又換成比較大小的方式,如:
select * from t_timetest where [time] >= '2007-1-18' and [time] <= '2007-1-19'
但結果一樣,這樣可以確定語句上應該沒什麼問題,問題在時間型別預設的時分秒上,做這樣乙個例子
declare @time datetime
set @time = '2007-1-18'
print @time
輸出結果是:
jan 18 2007 12:00am
看到結果,我突然有乙個問題:12:00am是中午還是凌晨,問問我的同事,他們告訴我:不要想這個問題,否則你會瘋的。(看來他可能為此瘋過)不過從上面的結果看12:00am應該是凌晨。最後同事建議我用字串比較大小來解決這個問題。如下
select * from t_timetest where convert(varchar(10),[time],120) >= '2007-01-18' and convert(varchar(10),[time],120) <= '2007-01-19'
結果如下:
1 2007-01-19 10:48:36.000
2 2007-01-19 23:35:36.000
3 2007-01-18 23:35:36.000
其中convert(varchar(10),[time],120)中的「120」是乙個格式
sql時間轉換時分秒 SQL時分秒之間相互轉換
以秒為單位轉換 我們先來宣告乙個時間單位是秒的變數,方面下面用 declare a int 2000 變數 a,2000秒 1 將秒轉換成時分秒格式 select convert varchar 10 a 3600 時 convert varchar 10 a 3600 60 分 convert v...
時分秒針重合
問題 在一天的24小時之中,時鐘的時針 分針和秒針完全重合在一起的時候有幾次?都分別是什麼時間?你怎樣算出來的?分析初看此問題覺得很簡單,但是網上各種版本的答案都各不相同,那到底誰是對的呢?我們可以這樣考慮 龜兔賽跑,跑得慢的針終歸會被快的一圈一圈超過。那麼,分別求出時針分針 分針秒針的重合時間,然...
Excel 提取時分秒
函式定義 從時間中提取出 時 官方說明 返回時間值的小時數.即乙個介於0到23之間的整數。使用格式 hour serial number hour 要查的單元格 引數定義 注意事項 當指定的 serial number 的值無法識別為時間時,返回錯誤值 value 例項 函式定義 從時間中提取出 分...