時間型別預設的時分秒

2022-02-19 14:25:48 字數 1149 閱讀 9889

前幾天被時間型別給鬱悶了,我要做這樣乙個工作,取出某天到某天的記錄,這些記錄都有乙個字段記錄著是什麼時候建立的,而且詳細到了秒。例如:

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 例項 函式定義 從時間中提取出 分...