Ⅰ sql時間函數
SQLServer2000中沒有這種數據類型,只有SQLServer2008中才有這種數據類型,名字叫time數據類型.time類型只有時分秒,沒有年月日.
在SQLServer2000中如果要實現這種效果,那麼就不適合用日期和時間類型,而應該採用字元串類型,值由時間類型轉換而來,如:
SELECT CONVERT(varchar(100), GETDATE(), 108)--結果: 10:57:49
Ⅱ SQLServer資料庫中將日期格式進行轉換急急急
1.首先點擊頂部菜單中的「新查詢」,打開一個SQL輸入窗口。
Ⅲ sqlserver中如何取日期的年月
這個,你只能把這個讀取出來的數據當字元串處理了!!
用空格去分解這個欄位,保存在數組里,然後提取第一個為月份,第二個為日期,第三個為年份,第四個為小時和分鍾,已經上下午
$time
=
$rs["lastlogin"];
$times
=
explode("
",$time);
$month
=
$times[0];
$day
=
$times[1];
$year
=
$times[2];
$hour
=
substr($times[3],0,2);
$minute
=
substr($times[3],3,2);
if(substr($times[3],5,1)=='p')
{
$hour
=
intval($hour);
if($hour<12)
{
$hour
+=
12;
}
}
$realtime
=
$year."-".$month."-"."day"."
".$hour.":".$minute.":00";
echo
$realtime;
Ⅳ sqlserver怎麼查詢一小時內的信息(sql語句)
select * from 日期欄位 BETWEEN DATEADD(HOUR,-1,GETDATE()) AND getdate()
Ⅳ sqlserver的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表示時間段是一點
唉,只想到這個笨辦法唉
Ⅵ Sqlserver 中如何根據時間(24小時) 模糊查詢一個欄位並統計該欄位24小時
用WHERE EXTRACT(HOUR FROM 時間欄位)=6 或者樓上的TO_CHAR()感覺EXTRACT效率高點,而且返回是類型是整型! 答題不易,互相幫助,手機提問的朋友在客戶端右上角評價點滿意即可. 如認可我的回答,請點擊採納為滿意回答按鈕.
Ⅶ sqlserver 如何把日期型轉換成指定格式
select convert(char(8),(datepart(year,getdate())*100+datepart(month,getdate()))*100+datepart(day,getdate()))
+ convert(char(6),(datepart(hour,getdate())*100+datepart(mi,getdate()))*100+datepart(ss,getdate()))
把getdate()換成你要轉換的時間即可
好象是沒有了。其中的加也要轉換成字元型後才能加,如果不轉換加到分鍾時會發生溢出。
select convert(char(8),(datepart(year,'2010.1.4 16:28:56')*100+datepart(month,'2010.1.4 16:28:56'))*100+datepart(day,'2010.1.4 16:28:56'))
+ convert(char(6),(datepart(hour,'2010.1.4 16:28:56')*100+datepart(mi,'2010.1.4 16:28:56'))*100+datepart(ss,'2010.1.4 16:28:56'))
Ⅷ 如何模擬SQLServer的兩個日期處理函數
//在 PHP 中處理日期非常不方便,比如求兩個日期之間相差的月份?該怎麼辦呢? //文件名:date.inc. php 3 //在使用這兩個函數前,要先將日期或日期時間轉換成timestamp類型。 //如: //$today=mktime(0,0,0,date("m"),date("d"),date("Y")); /****模擬 sql
//在PHP中處理日期非常不方便,比如求兩個日期之間相差的月份?該怎麼辦呢?
//文件名:date.inc.php3
//在使用這兩個函數前,要先將日期或日期時間轉換成timestamp類型。
//如:
//$today=mktime(0,0,0,date("m"),date("d"),date("Y"));
/****模擬sqlserver中的dateadd函數*******
$part 類型:string
取值范圍:year,month,day,hour,min,sec
表示:要增加的日期的哪個部分
$n 類型:數值
表示:要增加多少,根據$part決定增加哪個部分
可為負數
$datetime類型:timestamp
表示:增加的基數
返回 類型:timestamp
**************結束**************/
function dateadd($part,$n,$datetime){
$year=date("Y",$datetime);
$month=date("m",$datetime);
$day=date("d",$datetime);
$hour=date("H",$datetime);
$min=date("i",$datetime);
$sec=date("s",$datetime);
$part=strtolower($part);
$ret=0;
switch ($part) {
case "year":
$year+=$n;
break;
case "month":
$month+=$n;
break;
case "day":
$day+=$n;
break;
case "hour":
$hour+=$n;
break;
Ⅸ sqlserver查詢本月所有不在這個時間段的數據(如 整個四月份不在 7.30-8.30 12.30-13.30這個時間段)
首先你得有欄位記錄時間,假設這個欄位是datetime類型,名為[create_time];
然後,可以使用datepart函數來獲取一個時間類型的年、月、日、時、分、秒的值;
最後,可以將hour:minute轉換為一個帶小數的類型來比較,例如numeric(4,2)。
select * from ...
where datepart(month,updtime)=4
and not datepart(hour,create_time) +convert(numeric(4,2),datepart(minute,create_time))/100 between 7.3 and 8.3
and not datepart(hour,create_time) +convert(numeric(4,2),datepart(minute,create_time))/100 between 12.3 and 12.3
Ⅹ sqlserver截取日期的年份和月份
sqlserver 截取日期年份和月份使用datepart函數,函數使用方法如下:
一、函數功能:DATEPART() 函數用於返回日期/時間的單獨部分,比如年、月、日、小時、分鍾等等。
二、語法:DATEPART(datepart,date)
三、參數說明:date參數是合法的日期表達式。datepart參數可以是下列的值:
四、實例
1、截取年份:datepart(yy,'2017-1-1') 返回:2017
2、截取月份:datepart(mm,'2017-1-1') 返回:1
五、datepart函數返回的是整型數值,如果需要返回字元型,那麼使用datename()函數,用法與datepart相同,只是返回數據類型不同。