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

sqldatetime27

發布時間: 2023-07-17 13:25:07

sql的datetime和smalldatetime怎麼用

一般情況下就用datetime就是了,smalldatetime精度太低了,判斷時間的時候很容易弄錯,等你用熟練了sql再使用smalldatetime吧,在c#裡面拼一個string類型的sql語句就可以存儲時間,如:string TestSql=" insert into TestTable set TestDateTime='"+ DateTime.Now.ToString() +"' ";
或者string TestSql=" insert into TestTable set TestDateTime='2010-3-5' ";
或者string TestSql=" insert into TestTable set TestDateTime='2010-3-5 11:03:11' ";
上面的代碼復制粘貼到程序里去試試看就會有體會了。

㈡ 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 server資料庫中查詢datetime類型的數據詳細些!!!

這是查詢與當前時間在同一周內的數據,sql語句是:
select * from 表 where datediff(week,時間欄位,getdate())=0

也可以稍作修改用來查詢與指定日期在同一周內的數據:
select * from 表 where datediff(week,時間欄位,'2002-01-01')=0
像你的這個表,查詢一段時間(需要指定前後日期的)
select * from 表 where startdate between 指定日期 and 指定日期
select * from 表 where leavedate between 指定日期 and 指定日期
查詢一段時間( 不需要固定時間的,只需要前後間隔時間的)
select * from 表 where datediff(day,startdate,leavedate)<7 and startdate = 指定日期select * from 表 where datediff(day,startdate,leavedate)<7 and leavedate = 指定日期
這是查詢此日期開始時間到離開時間在七天之間的所有數據,後面的and部分按需要加。

㈣ sql中如何將datetime日期轉換成int日期

字元串和日期 必須符合整型的要求 整型是數字 字元串如果是數字的形式才可以轉換 如果是漢字字母的話 你覺得能轉換為數字嗎? 肯定不行 日期也類似 如果日期類型是20130805這樣的格式 你轉換就沒有問題 否則肯定報錯
然後給你轉換的 語法吧
--方法一:
select cast(欄位名 as int)
--方法二:
select convert(int,欄位名)