|
查看: 1452|回复: 1
|
為什麼我的SQL指令無法比較日期的?誰能幫我除錯? 很簡單,但我就是不懂錯在哪裡
[复制链接]
|
|
|
CREATE TABLE #TEMP
(
[Date] [datetime] NULL
)
INSERT INTO #TEMP([Date]) Values ('07/01/2009 12:00')
INSERT INTO #TEMP([Date]) Values ('07/01/2009 12:01')
INSERT INTO #TEMP([Date]) Values ('08/01/2009 12:00')
INSERT INTO #TEMP([Date]) Values ('08/01/2009 12:01')
SELECT 'Compared Date' = CASE WHEN [Date] > CONVERT(DATETIME, (CONVERT(VARCHAR, [Date], 103) + ' 12:00:00.000')) THEN [Date]+1 ELSE [Date] END, 'Original Date' = [Date], 'Converted Date' = CONVERT(DATETIME, (CONVERT(VARCHAR, [Date], 103) + ' 12:00:00.000'))
FROM #Temp
DROP Table #TEMP
執行上面的指令先。
我的目的是
要拿original date去對比converted date
如果original date真的超過中午12點,那麼我的compared date要加一天
如果沒有超過12點,那麼就放回原本的日期
到底我錯在哪裡呀?
誰會呢? |
|
|
|
|
|
|
|
|
|
|
发表于 9-1-2009 11:42 PM
|
显示全部楼层
试试看:
select 'Compared Date' = case when DATEPART([hour], @date) > 12 then (@date+1)
when (DATEPART([hour], @date) = 12 AND DATEPART([minute], @date) > 0) then (@date+1)
when (DATEPART([hour], @date) = 12 AND DATEPART([second], @date) > 0) then (@date+1)
else @date
end |
|
|
|
|
|
|
|
|
| |
本周最热论坛帖子
|