iT邦幫忙

0

MSSQL 計算時間 半小時,如何處理比較好

  • 分享至 

  • xImage

您好:
MSSQL 我計算出 分鐘數/60==> XX.YY

那,YY 有什麼方式 或者 一開始計算就可以找把
1.61==>1.5小時計
1.43==>1 小時 計

該如何處理呢?
謝謝

PIZZ iT邦新手 1 級 ‧ 2023-07-11 17:19:37 檢舉
GPT大神開釋:

若您希望將小於1.9小時的值都捨入為1.5,並將大於1小時但小於1.5小時的值捨入為1,可以使用CASE語句結合ROUND函數來實現。以下是修改後的示例查詢:

DECLARE @Minutes INT = 110 -- 假設要計算的分鐘數

SELECT
CASE
WHEN @Minutes < 60 THEN 1 -- 小於1小時的情況
WHEN @Minutes < 90 THEN 1.5 -- 大於等於1小時但小於1.5小時的情況
ELSE ROUND(@Minutes / 60.0, 2) -- 其他情況
END AS RoundedHours

但根據您的問題,不知道我的理解和GPT給的答案是否正確......
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
8
rogeryao
iT邦超人 7 級 ‧ 2023-07-11 17:33:11
最佳解答
CREATE TABLE XX (
X1 float);

INSERT INTO XX VALUES
(1.61),
(1.43);
SELECT X1,FLOOR(X1 / 0.5) * 0.5
FROM XX

Demo

noway iT邦研究生 1 級 ‧ 2023-07-11 18:46:55 檢舉

謝謝您!

在你手裡什麼都變超簡單 /images/emoticon/emoticon01.gif

0
allenlwh
iT邦高手 1 級 ‧ 2023-07-11 18:05:59

參考 rogeryao 的做法

SELECT FLOOR( 分鐘數 /convert(numeric(10,2),60) / 0.5) * 0.5
SELECT FLOOR( 88 /convert(numeric(10,2),60) / 0.5) * 0.5 -->1.0
SELECT FLOOR( 90 /convert(numeric(10,2),60) / 0.5) * 0.5 -->1.5
SELECT FLOOR( 123 /convert(numeric(10,2),60) / 0.5) * 0.5 -->2.0
SELECT FLOOR( 150 /convert(numeric(10,2),60) / 0.5) * 0.5 -->2.5
0
chuway
iT邦新手 2 級 ‧ 2023-07-15 07:59:22

(分鐘數/30)四捨5入,再除2就是答案了
select round(min/30,0)/2 ....
round/floor/ceiling就看需求

我要發表回答

立即登入回答