當前位置:首頁 » 編程語言 » sql連續時間段合並
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql連續時間段合並

發布時間: 2022-08-31 14:40:19

sql 怎麼 把 日期列和時間列合並成列

  1. SQL轉換函數Convert,SQL如下:

  2. 日期轉換:select convert(varchar,'2015-08-06')

  3. 時間轉換:select convert(varchar,'08:30:00')

  4. 二者相加:select convert(varchar,'2015-08-06')+select convert(varchar,'08:30:00')

  5. 同理如果是字元串轉日期格式,

  6. Convert(date,'2015-08-06') 或 convrt(datetime,'2015-08-06 09:40:00『)

Ⅱ sql server 怎麼把同一時間的數據累加合並成一條數據

用sum函數加group by配合就可以達到你的要求了,例如這樣,select sum(num) from table group by time,希望對你有幫助

Ⅲ sql合並多個時間段

如果是oracle 我會使用一個臨時表,包含人員,持續開始時間,持續結束時間,處理任務,處理方法如下

  • 首先取出某員工一天的所有工作記錄,按開始時間排序後逐條處理

  • 首先將第一條記錄插入到臨時表中,持續開始時間為 開始時間,持續結束時間為結束時間,處理任務為1;

  • 在取到後續記錄時,作如下處理

  • 如果開始時間 > 臨時表中已經存在的所有結束時間,則新增一條記錄,與第一條處理方式一致;

  • 如果開始時間 <=臨時表中已經存在的某一結束時間處理如下

  • 如果 結束時間 <=臨時表中已經存在的某一結束時間,不作任何插入和更新;

  • 如果 結束時間 >臨時表中已經存在的某一結束時間,更新臨時表中對應記錄為當前取到的結束時間;

  • 按照以上規則直至所有數據均處理完成,此時臨時表中獲得的是不重疊的所有工作時間,採用group 即可獲得一天是實際工作時間,進而可以求出休息時間。

Ⅳ 一個記錄表中有工號,日期時間,每天3個時段都有記錄。怎樣用sql語句按照一段時間,不同時間段把記錄合並

使用 CASE WHEN語句判斷時間區間,確定是用餐類型。
SQL Server 舉例:
select 名稱,卡號,時間,
case when 時間 between CONVERT(varchar(11),時間,121)+'6:00:00' and CONVERT(varchar(11),時間,121) + '10:29:59' then '早餐'
when 時間 between CONVERT(varchar(11),時間,121)+'10:30:00' and CONVERT(varchar(11),時間,121) + '14:59:59' then '中餐'
when 時間 between CONVERT(varchar(11),時間,121)+'15:00:00' and CONVERT(varchar(11),時間,121) + '20:59:59' then '晚餐'
when 時間 between CONVERT(varchar(11),時間,121)+'21:00:00' and CONVERT(varchar(11),時間+1,121) + '01:30:00' then '宵夜'
end 用餐類型
from tab
其它資料庫應該有類似於語法。

Ⅳ sql中按時間多天數據合並成一條數據

1.
請確認你的資料庫類型
sqlserver
還是oracle?
2.
大致思路
根據姓名,編號,業務類別,交易時間(格式化到天)
進行聚合處理,金額用sum,次數用count,最近次數用max
3.
如果是oracle
可以這么做
select
name ,id
,type ,sum(costs),count(name),trunc(busi_date),max(busi_code)
from
table
group
by
name ,id
,type ,trunc(busi_date)

Ⅵ 如何在SQL合並日期+時間,然後相減

問題一:SELECT DATEDIFF( Day, '2008.08.25', '2008.09.01' )

問題二:SELECT DATEDIFF( Second, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差秒數
或者
SELECT DATEDIFF( Minute, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差分鍾數
或者
SELECT DATEDIFF( Hour, 2009-8-25 12:15:12', 2009-9-1 7:18:20') --返回相差小時數

問題三:SELECT DATEDIFF( Day, 2009-8-25 12:15:12', 2009-9-1 7:18:20')

附:
DATEDIFF 函數使用說明:
返回跨兩個指定日期的日期和時間邊界數。

語法
DATEDIFF ( datepart , startdate , enddate )

參數
datepart

是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。

日期部分 縮寫
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

startdate

是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。

因為 smalldatetime 只精確到分鍾,所以當用 smalldatetime 值時,秒和毫秒總是 0。

如果您只指定年份的最後兩位數字,則小於或等於"兩位數年份截止期"配置選項的值的最後兩位數字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位數字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(默認),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位數的年份。

有關時間值指定的更多信息,請參見時間格式。有關日期指定的更多信息,請參見 datetime 和 smalldatetime。

enddate

是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字元串的表達式。

返回類型
integer

注釋
startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。

當結果超出整數值范圍,DATEDIFF 產生錯誤。對於毫秒,最大數是 24 天 20 小時 31 分鍾零 23.647 秒。對於秒,最大數是 68 年。

計算跨分鍾、秒和毫秒這些邊界的方法,使得 DATEDIFF 給出的結果在全部數據類型中是一致的。結果是帶正負號的整數值,其等於跨第一個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。

示例
此示例確定在 pubs 資料庫中標題發布日期和當前日期間的天數。

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

Ⅶ sql把時間類型欄位合並成一個,求解答!!如圖。

--可以用下面的代碼
selectp_name,MIN(r_data_begin)r_data_begin,MAX(r_data_down)r_data_down,SUM(r_month_money)r_month_money,SUM(r_total_money)r_total_money,r_HeNamefrom#sgroupbyp_name,r_HeName