當前位置:首頁 » 編程語言 » sql度量算周期
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql度量算周期

發布時間: 2022-07-26 00:41:41

sql如何查詢一段時間內每個周期裡面數值最大的數據

10秒計算公式如下
select
sysdate,sysdate+
10/24/60/60
from
al;
select
*
from
table_name
where
欄位>=sysdate
and
欄位
<=
sysdate+
10/24/60/60
;
如果要進行10秒為周期查詢一次數據,數據需要寫入到臨時表,資料庫會專壓力很大
需要做個定時運
屬行
就可以了

② SQL 中一個欄位為年加周期,比如1145就是2011年第45周,如何從1145計算到對應的日期

select to_date(substr('1145',1,2)||'-01-01','yy-mm-dd')+substr('1145',3,2)*7 from al
把上面的'1145'換成列名,al換成表名就行了!
如果45周第一天到第七天,把substr(列名,3,2)*7-6, substr(列名,3,2)*7就是了

③ SQL關於時間段的問題

不知道你用的是什麼DB, 如果是MS SQLServer 或者 Oracle 的話,製作一個觸發器就可以了, 我以Ms SQLServer 為例子做了一個,由於你的條件寫得不是很清楚,表格所需要的質量缺陷和合格率的統計要你自己來做了。已經用我自己做的表格測試完畢,沒有問題,剩下的就看你自己了。

USE [自己的DB]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:<Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE PROCEDURE proc_getPassRateList()
AS
BEGIN
declare @terms int; -- 統計周期
declare @minDate datetime; -- 開始日期
declare @maxDate datetime; -- 結束日期
declare @daysCnt int; -- 天數

set @terms = 14; -- 周期為14
set @minDate = '2009-01-01'; -- 自己任意設定
set @maxDate = (select getdate()); -- 結束日期為系統日期的今天
set @daysCnt = (select datediff(day, @minDate, dateadd(day, 1, getdate()))); -- 計算用的總天數

-- 建立臨時表格
CREATE TABLE #passList(
id int identity(1,1) not null,
quality_def varchar(50) not null,
pass_rate smallint not null,
start_date datetime not null,
end_date datetime not null
CONSTRAINT [PK_passList] PRIMARY KEY CLUSTERED
(
id ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

while(@terms < @daysCnt)
begin
if @daysCnt-(@terms%@daysCnt) >= 14 and @mindate < getdate()
begin
insert into #passList
select a.質量缺陷, a.不合格數量/a.受檢數量*100%, b.startDate, b.endDate from table a left join ( select @minDate as startDate,dateadd(day, 14, @minDate) as endDate ) b on a.統計日期 >= b.startDate and a.統計日期<= b.enddate group by a.質量缺陷 order by a.統計日期 asc
end
else
begin
break;
end
set @terms = @terms+14 -- 周期+14
set @minDate = dateadd(day, 15, @minDate) -- 開始日期+15天
end
SELECT * FROM #passList order by id ASC
DROP TABLE #passList
END

④ 設置SQL自動備份,備份發生時間和保留數據周期是多少

備份發生時間盡量選擇伺服器負載小時,比如凌晨、中午。
備份周期和保存備份文件的時間要看資料庫的重要性了。如果數據比較重要,數據變化很頻繁,可以半天一備份,數據保存一各月。如果數據變化不太頻繁,甚至可以一周備份一次,數據保存3個月。

⑤ sql 按時間分類查詢數據,比如:按一天時間段分類查詢訪問次數查詢語句怎麼寫舉個例子

如果你的時間段是均勻的,比如一天24小時內,每4個小時為一個周期,那麼可以這么寫

select coutn(ID) from T group by trunc (to_char(time,'hh24') / 4)

--to_char(time,'hh24')是取出小時部分,trunc是求商,把小時部分除以4,則每4個小時內的都會在一起

如果時間段不均勻,那麼只能每個時間段單獨寫了
示例
select count(ID) from T where to_char(time,'hh24')<結束時間 and to_char(time,'hh24') >=開始時間

⑥ sql語句怎麼寫:在一段時間內,周期是一小時,查詢每個周期里是否有某個值

我的是SQL Server 2008 R2,可以這么做:
SQL Server Management Studio->登錄->作業(對象資源管理器最後一項)->右鍵新建作業->填好「常規」然後把你要做的事情寫到「步驟」里,再在「計劃」里新建個執行時間/間隔,其它根據你的需求再弄吧

⑦ SQL資料庫 怎麼自定義哪一天到哪一天為一周

select datename(week,getdate())--------計算今天是第幾周
用這個函數你就可以知道哪些天是一周
into #a
select 日期,datename(week,日期) as 周別
查詢周別一樣的數據就可以了

⑧ SQL語句怎麼寫 數據列 開始時間 結束時間 考勤周期為上月21日至本月20日 現在我開始時間

不好意思剛才看錯了
用DATEDIFF(d,開始時間,上月21號的時間)>=0

用DATEDIFF(d,本月20號的時間,結束時間)>=0
其中時間類型要一致,如:
select DATEDIFF(d,'2014-08-13 17:05:41','2014-08-16 17:05:41')
結果是3

這兩個來作為where,就可以了

⑨ sql以7天為一個周期,計算一年中哪個周期中出生的學生數量最多

比如在A2單元格輸入的是:2016/5/4 那麼在A2單元格輸入公式:=A2+7 然後下拉即可。
更多關於sql以7天為一個周期,計算一年中

⑩ 求一條SQL語句算出每年的周期問題!

-- 這里設置 星期一 為 每周的第一天。
SET DATEFIRST 1
GO

SELECT
YEAR(everyDay) AS [年份],
DATEPART(ww, everyDay) AS [周期],
MIN(everyDay) AS [起始日期],
MAX(everyDay) AS [結束日期]
FROM
(
SELECT
Convert(datetime, '2011-01-01', 120) + number AS everyDay
FROM
master..spt_values
WHERE
type='P'
AND Convert(datetime, '2011-01-01', 120) + number < Convert(datetime, '2012-01-01', 120)
) tempView
GROUP BY
YEAR(everyDay),
DATEPART(ww, everyDay)
GO

年份 周期 起始日期 結束日期
2011 1 2011-01-01 00:00:00.000 2011-01-02 00:00:00.000
2011 2 2011-01-03 00:00:00.000 2011-01-09 00:00:00.000
2011 3 2011-01-10 00:00:00.000 2011-01-16 00:00:00.000
2011 4 2011-01-17 00:00:00.000 2011-01-23 00:00:00.000
2011 5 2011-01-24 00:00:00.000 2011-01-30 00:00:00.000
。。。。。。