當前位置:首頁 » 編程語言 » sqldate查詢

sqldate查詢

發布時間: 2022-06-21 18:52:41

sql查詢指定月份之前的幾個月

1、創建測試表,

create table test_date(id varchar2(20), v_date date);

Ⅱ 如何用Date條件查詢Sql語句

需要將表中的時間轉成字元類型再做查詢。
如emp表中數據如下:
現在要查詢hiredate中年份為1982年的信息,可用如下語句:
1
select * from emp where to_char(hiredate,'yyyy')=1982;
查詢結果:

Ⅲ sql語句如何查日期欄位的某天的數據

1、創建測試表,

create table test_date(id varchar2(20), v_date date);

Ⅳ SQL中兩個日期的查詢語句怎麼寫

1、創建測試表,

create table test_date(id int, v_date date);

Ⅳ sql怎麼查詢datetime

SELECT COUNT(*)/datediff(hour,'2009-06-15 00:00:00','2009-06-28 00:00:00')
from a
where b >= '2009-06-15 00:00:00'and b <= '2009-06-28 00:00:00'

如上是查詢6月15日到28日期間,平均每小時記錄的數據數目

datediff(hour,'2009-06-15 00:00:00','2009-06-28 00:00:00' --取得日期區間的小時數

------------------------------------------
哦,是我讀題不仔細唉,呵呵。
這樣的話就復雜了。
你不急的話我明天有空寫個預存程序來解決這個問題

------------------------------------------
1.先建立日期時間構造預存程序,用來傳回作時間段查詢的兩個時間
create PROC [dbo].[sp_fordate]
@year char(4),
@month char(2),
@day char(2),
@hour char(2),
@date1 varchar(12) output,
@date2 char(20) output,
@date3 char(20) output
as
begin
set @date1 = @year + '-' + ltrim(rtrim(@month)) + '-' +rtrim(@day)
set @date2 = @date1 + space(1) + ltrim(rtrim(@hour)) + ':00:00'
set @hour = @hour +1
set @date3 = @date1 + space(1) + ltrim(rtrim(@hour)) + ':00:00'
set @hour = @hour -1
set @date1 = @date1 + '-'+ @hour
end

2.在這一個預存程序里用循環跑出一個用union關聯的超長sql語句執行。需要傳入四個值,年份(2009四位格式),月份,日期(若日期傳入為空自動取1),小時(輸入1表示1點到2點時段,以此類推)

create proc riqi
@year char(4),
@month char(2),
@day char(2),
@hour char(2)
as
BEGIN
declare @SQL varChar(4000)
if @day is null or @day = ''
begin
set @day = 1
end
declare @date1 char(12)
declare @date2 char(20)
declare @date3 char(20)
exec sp_fordate @year,@month,@day,@hour,@date1 output,@date2 output,@date3 output
set @sql = 'select count(*) as 數目, '''+ @date1 + ''' as 日期時間 from a where b >= ''' + @date2 + '''' + ' and b<= ''' + @date3 + ''''
set @day = @day + 1
while @day <= 31
BEGIN
exec sp_fordate @year,@month,@day,@hour,@date1 output,@date2 output,@date3 output
set @sql = @sql +char(10)+char(13)+ ' union all ' +char(10)+char(13)+ 'select count(*), '''+ @date1 + ''' from a where b >= ''' + @date2 + '''' + ' and b<= ''' + @date3 + ''''
set @day = @day + 1
print @day
if @@error <> ''
BEGIN
break
END
ELSE
CONTINUE
END
exec(@sql)
END

測試結果如下

數目 日期時間
----------- ------------
3 2009-10-1-1
2 2009-10-2-1
1 2009-10-3-1

最後的-1表示時間段是一點

唉,只想到這個笨辦法唉

Ⅵ SQL語句怎麼查詢在某日期之前的數據

工具/材料:Management Studio。

1、首先在桌面上,點擊「Management Studio」圖標。

Ⅶ SQL 如何查詢日期在一定范圍內的數據

select * from 表 where 日期欄位>='開始日期' and 日期欄位<='截止日期' and convert(char(8),日期欄位,108)>='開始時間' and convert(char(8),日期欄位,108)<='截止時間'。

SELECT * FROM 表明 WHERE 日期欄位名 BETWEEN '20130101' AND '20130130'。

例如:

select * from tb1 where dDate>='2010-11-05' and dDate<='2010-11-15'
and convert(char(8),dDate,108)>='8:00:00' and convert(char(8),dDate,108)<='9:00:00'.

select * from table1where year(d)=2010 and month(d)=7 and day(d) between 1 and 31
and (Datepart(hour,d)>=22 or Datepart(hour,d)<6)

(7)sqldate查詢擴展閱讀:

SQL查詢日期:

今天的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())=0

昨天的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())=1

7天內的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())<=7

30天內的所有數據:select * from 表名 where DateDiff(dd,datetime類型欄位,getdate())<=30

本月的所有數據:select * from 表名 where DateDiff(mm,datetime類型欄位,getdate())=0

本年的所有數據:select * from 表名 where DateDiff(yy,datetime類型欄位,getdate())=0

參考資料:SQL_網路

Ⅷ sql如何按日期中的月份查詢

sql按日期中的月份查詢如下:

SQL Server

select * from [data] where DATEPART(m,[date])=2

Access

select * from [data] where DATEPART('m',[date])=2

說明:

DATEPART(datepart,date)

返回表示指定日期的指定部分的整數

datepart 要取得的日期部分

- m 表示月份,d表示日,yyyy表示年

date 日期表達式

舉例:

--以2013-12-10 12:56:55為例

--convert(nvarchar(10),CreateDate,120) => 2013-12-10

--DATEPART(month,CreateDate) => 12

--DATEPART(year,CreateDate) => 2013

--月

select datepart(MONTH,'2013-06-08')

select datepart(mm,'2013-06-08')

select datepart(m,'2013-06-08')

(8)sqldate查詢擴展閱讀:

相關函數

SQL Aggregate 函數

SQL Aggregate 函數計算從列中取得的值,返回一個單一的值。

有用的 Aggregate 函數:

AVG() - 返回平均值

COUNT() - 返回行數

FIRST() - 返回第一個記錄的值

LAST() - 返回最後一個記錄的值

MAX() - 返回最大值

MIN() - 返回最小值

SUM() - 返回總和

SQL Scalar 函數

SQL Scalar 函數基於輸入值,返回一個單一的值。

有用的 Scalar 函數:

UCASE() - 將某個欄位轉換為大寫

LCASE() - 將某個欄位轉換為小寫

MID() - 從某個文本欄位提取字元

LEN() - 返回某個文本欄位的長度

ROUND() - 對某個數值欄位進行指定小數位數的四捨五入

NOW() - 返回當前的系統日期和時間

Ⅸ 用sql語言檢索date類型的數據

//用sizeof()取類型長度。 比如int型。
select * from table where (sizeof(a) mod 4=0)

你用的什麼資料庫?你在資料庫里用來存儲這個數據的類型是什麼,你應該知道吧。知道的話,你應該可以知道這個類型你設了多長的長度吧。
如果是 char(10)
那這樣試下吧,看看。
select * from table where (len(欄位名) mod 10=0)

熱點內容
vpn韓國伺服器地址 發布:2025-03-20 07:12:44 瀏覽:25
打碼軟體源碼 發布:2025-03-20 07:08:06 瀏覽:109
前端android 發布:2025-03-20 06:50:42 瀏覽:93
進制轉換棧c語言 發布:2025-03-20 06:50:31 瀏覽:339
myeclipse不自動編譯了 發布:2025-03-20 06:41:38 瀏覽:777
led汽車大燈和鹵素燈該選哪個配置 發布:2025-03-20 06:40:55 瀏覽:917
sql網校 發布:2025-03-20 06:16:42 瀏覽:279
安卓手機圖標排列為什麼會混亂 發布:2025-03-20 06:16:05 瀏覽:761
手機pin初始密碼是多少 發布:2025-03-20 06:15:59 瀏覽:900
javaif常量變數 發布:2025-03-20 06:15:57 瀏覽:344