當前位置:首頁 » 編程語言 » SQL怎麼選擇一段日期
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

SQL怎麼選擇一段日期

發布時間: 2022-10-04 00:38:08

A. 在sql語句中 怎麼在不考慮年份的情況下,選擇一段日期

這個問題同時間的比較類似,只需將月日轉換為對應的小數,通過數值比較就不會出現邏輯問題。
假設資料庫中日期欄位為 n1和n2 則對應語句可以寫為:

where convert(float,datename(month,n1)+'.' +datename(day,n1)) - convert(float,datename(month,n2)+'.' +datename(day,n2)) < 0

B. SQL語句查詢特定時間段的數據怎麼寫

SQL伺服器:

Select*fromtablewhere'2008-7-1'和'2008-12-31'

訪問

從表中選擇發生日期>#2008-7-1#和發生日期<#2008-12-31#

就是這樣:注意,SQLserver中的日期和訪問有一點不同。

(2)SQL怎麼選擇一段日期擴展閱讀:

SQL查詢日期語句

Select*fromShopOrderwheredatediff(week,ordTime,getdate()-1)=0//查詢第一年的日期

Select*fromShopOrder,其中datediff(day,ordTime,getdate()-1)=0//查詢當天的所有數據

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上個月

搜索當天記錄的其他方法:

SELECT*

FROMj_GradeShop

其中(GAddTimeBETWEENCONVERT(datetime,LEFT(GETDATE(),10)+'00:00:00.000'))

並轉換(datetime,LEFT(GETDATE(),10)+'00:00:00.00.000')+1)

由GAddTime指定的訂單

C. 在sql資料庫中如何篩選以日期為條件的記錄

sql資料庫中如篩選以日期為條件的記錄,可以用有二種方法具體實現,如下:
第一種:直接用語句
date1與date2是字元串
SQL.Tet:='select
*
from
table
where
欄位
between
'+Quotedstr(date1)+'
and
'+Quotedstr(date2);
date1與date2是日期
SQL.Tet:='select
*
from
table
where
欄位
between
'+Quotedstr(DateTimeToStr(date1))+'
and
'+Quotedstr(DateTimeToStr(date2));
第二種:用參數形式:
SQL.Tet:='select
*
from
table
where
欄位
between
:d1
and
:d2';
Parameters.ParamByName('d1').Value:=date1;
Parameters.ParamByName('d2').Value:=date2;

D. SQL中如何截取一段時間

用分組求和函數,對日期進行分組,對記錄進行計數。date_cln1
select turnc(upload_day,'dd'),count(1) from table_name group by turnc(upload_day,'dd');
希望可以幫到你

E. SQL中按日期進行查詢,如何截取日期進行查詢

那你就直接寫 time>date'2012-01-01' and time<date'2013-01-01'
當然,如何把'2012-01-01'轉換為資料庫的時間類型,各種資料庫是不一樣的,oracle中是to_date('2012-01-01','yyyy-MM-dd')

F. sql 如何選擇最近的日期

呵呵,midasblesshj的方法其實第一種是好的,但是第二種要是把abs函數去掉了那就壞了,因為去掉了abs,無論你怎樣做,取到的永遠都是最小日期的值,當查詢日期比20090605大時,結果正確,但是比他小時,結果就是錯了的,因為min函數可以是負的,最小的負數則離目標結果很遠了。
正確的應該就是第一個語句,要去除重復加distinct:
select distincr * from 表 where abs(datediff(d,date,'20090605'))=(select min(abs(datediff(d,date,'20090605')))from 表)
但是又正如midasblesshj所說,有個問題,當查詢'20090605'時,離他最近的有可能有兩個值,比如'20090604'和'20090606'。
所以這就需要樓主做取捨了 如果兩個都要,則什麼都不加,只要一個,則利用top和order by :
select distincr top 1 * from 表 where abs(datediff(d,date,'20090605'))=(select min(abs(datediff(d,date,'20090605')))from 表) order by date
當然 是要大的還是小的那個,就使用asc和desc來取吧

G. 在sql資料庫中如何篩選以日期為條件的記錄

sql資料庫中如篩選以日期為條件的記錄,可以用有二種方法具體實現,如下:
第一種:直接用語句

date1與date2是字元串
SQL.Tet:='select * from table where 欄位 between '+Quotedstr(date1)+' and '+Quotedstr(date2);

date1與date2是日期
SQL.Tet:='select * from table where 欄位 between '+Quotedstr(DateTimeToStr(date1))+' and '+Quotedstr(DateTimeToStr(date2));

第二種:用參數形式:
SQL.Tet:='select * from table where 欄位 between :d1 and :d2';
Parameters.ParamByName('d1').Value:=date1;
Parameters.ParamByName('d2').Value:=date2;

H. 如何在SQL中按時間段查詢數據

sql server:

select * from 表 where 發生日期>'2008-7-1' and 發生日期<'2008-12-31'

access:

select * from 表 where 發生日期>#2008-7-1# and 發生日期<#2008-12-31#

這樣就可以了,注意sql server與access中的日期有一點不一樣。

(8)SQL怎麼選擇一段日期擴展閱讀:

sql查詢日期語句

select * from ShopOrder where datediff(week,ordTime,getdate()-1)=0 //查詢當天日期在一周年的數據

select * from ShopOrder where datediff(day,ordTime,getdate()-1)=0 //查詢當天的所有數據

SELECT * FROM A where datediff(d,datetime,getdate()) <=30 //前30天

SELECT * FROM A WHERE DATEDIFF(m, shijian, GETDATE()) <=1 //上一月

查詢當天記錄另類的方法:

SELECT *

FROM j_GradeShop

WHERE (GAddTime BETWEEN CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000')

AND CONVERT(datetime, LEFT(GETDATE(), 10) + ' 00:00:00.000') + 1)

ORDER BY GAddTime DESC

I. sql 查詢日期分段問題

這個我做過個統計模塊,可以實現,貼其中1個時間段SQL整理函數你理解下,不理解可以hi我

function global_sql($type, $date, $from, $to, $vol){
if($type==0){
if ($date==0){
$sql = "DATE(".$vol.")=DATE(now())";
}else if ($date==1){
$sql = "DATE(".$vol.")=DATE_SUB(now(),Interval 1 DAY)";
}else if ($date==2){
$from = date("Y-m-",time()).$from;
$to = date("Y-m-",time()).$to;
$sql = "DATE(".$vol.")>='".$from."' and DATE(".$vol.")<='".$to."'";
}
}else if ($type==1){ #天
if ($date==0){
$sql = "DATE(".$vol.")=DATE(now())";
}else if ($date==1){
$sql = "DATE(".$vol.")=DATE(DATE_SUB(now(),Interval 1 DAY))";
}else if ($date==2){
$from = date("Y-m-",time()).$from;
$to = date("Y-m-",time()).$to;
$sql = "DATE(".$vol.")>='".$from."' and DATE(".$vol.")<='".$to."'";
}
}else if ($type==2){ #周
if ($date==0){
$sql = "DATE_FORMAT(".$vol.",'%Y%u')=DATE_FORMAT(now(),'%Y%u')";
}else if ($date==1){
if ( date("W",time())<=1 ){
$temp = (date("Y",time())-1).(52);
}else{
$temp = date("Y",time()).(date("W",time())-1);
}

$sql = "DATE_FORMAT(".$vol.",'%Y%u')='".$temp."'";
}else if ($date==2){
$from = date("Y",time()).$from;
$to = date("Y",time()).$to;
$sql = "DATE_FORMAT(".$vol.",'%Y%u')>='".$from."' and DATE_FORMAT(".$vol.",'%Y%u')<='".$to."'";
}
}else if ($type==3){ #月
if ($date==0){
$sql = "DATE_FORMAT(".$vol.",'%Y%c')=DATE_FORMAT(now(),'%Y%c')";
}else if ($date==1){
if ( date("n",time()) <= 1 ){
$temp = (date("Y",time())-1).(12);
}else{
$temp = date("Y",time()).(date("n",time())-1);
}

$sql = "DATE_FORMAT(".$vol.",'%Y%c')=".$temp;
}else if ($date==2){
$from = date("Y",time()).$from;
$to = date("Y",time()).$to;
$sql = "DATE_FORMAT(".$vol.",'%Y%c')>=".$from." and DATE_FORMAT(".$vol.",'%Y%c')<=".$to;
}
}else if ($type==4){ #季度
$year = date("Y",time());
if ($date==0){
$temp = re_quarter( quarter( date("n",time()) ) );
$sql = "DATE_FORMAT(".$vol.",'%Y%c') in (".$year.$temp[0].",".$year.$temp[1].",".$year.$temp[2].")";
}else if ($date==1){
if ( date("n",time()) <= 1 ){
$year -= 1;
$temp = re_quarter( quarter( 4 ) );
}else{
$temp = re_quarter( quarter( date("n",time())-1 ) );
}

$sql = "DATE_FORMAT(".$vol.",'%Y%c') in (".$year.$temp[0].",".$year.$temp[1].",".$year.$temp[2].")";
}else if ($date==2){
$year = date("Y",time());
#$sql = "DATE_FORMAT(".$vol.",'%Y%c')>=".$from." and DATE_FORMAT(".$vol.",'%Y%c')<=".$to;
$sql = "year(".$vol.")=".$year." and (quarter(".$vol.")>=".$from." and quarter(".$vol.")<=".$to.")";
}
}else if ($type==5){ #年
if ($date==0){
$sql = "YEAR(".$vol.")=YEAR(now())";
}else if ($date==1){
$sql = "YEAR(".$vol.")=YEAR(now())-1";
}else if ($date==2){
$sql = "YEAR(".$vol.")>=".$from." and YEAR(".$vol.")<=".$to;
}
}
return $sql;
}

J. SQL里怎麼提取一個時段日期

1.生成查詢表
select orderedon,NAME,PARTNUM,PARTNUM,DESCRIPTION INTO 查詢表 FROM 表1 where (orderedon>#1996-08-31# ) and (orderedon<#1996-10-01# )
2.分段查詢(分2次運行)
select orderedon,NAME,PARTNUM,PARTNUM,DESCRIPTION INTO 查詢臨時表 FROM 表1 where (orderedon>#1996-08-31# )
select orderedon,NAME,PARTNUM,PARTNUM,DESCRIPTION INTO 查詢表2 FROM 查詢臨時表 where (orderedon<#1996-10-01# )