① 在sql server 2008中如何查詢本日、本周和本月數據
--本日
select*fromtablewherecolbetweencast((convert(varchar(10),getdate(),120)asdatetime)andcast((convert(varchar(10),getdate(),120)+'23:59:59.997'asdatetime)
或
SELECT*FROMtableWHEREdatediff(day,col,getdate())=0
--本周
SELECT*FROMtableWHEREdatediff(week,col,getdate())=0
--本月
select*fromtablewherecolbetweencast((convert(varchar(7),getdate(),120)+'-1'asdatetime)andcast((convert(varchar(7),dateadd(m,1,,getdate()),120)+'-1'asdatetime)
② sql server 如何根據日期自動查詢本月份的數據
截取
substring('2017-12-23',6,2)='12';
substring取月份就行了,不用管多少天。
③ SQL如何取年月
1、首先大部分都會使用的就是獲取當前日期了,getdate直接用。
④ 如何從資料庫中取出本月數據
一般用法:
select * from tablename
where datepart(quarter,dtfield)=datepart(quarter,getdate())
如果要最快,估計要對dtfield建索引,而且這樣查詢:
declare @Part int
declare @Year int
declare @begindate datetime
declare @enddate datetime
select @Part=datepart(quarter,getdate()),@Year=datepart(Year,getdate())
if @Part=1
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-1-1'),@Enddate=convert(datetime,convert(varchar(4),@Year)+'-4-1')
end
if @Part=1
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-4-1'),@Enddate=convert(datetime,convert(varchar(4),@Year)+'-7-1')
end
if @Part=1
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-7-1'),@Enddate=convert(datetime,convert(varchar(4),@Year)+'-10-1')
end
if @Part=4
begin
select @Begindate=convert(datetime,convert(varchar(4),@Year)+'-10-1'),@Enddate=convert(datetime,convert(varchar(4),@Year+1)+'-1-1')
end
select * from tablename
where dtfield>=@BeginDate
and dtfield<@EndDate
⑤ SQL查詢最近三個月的數據(查詢最近幾天,幾
1、創建測試表,create table test_date2(id number, v_date date);
⑥ sql怎麼在一個語句里得到本月、上一個月、去年同期的數據
你好的
有兩種方式可以得到你要的結果;
通過關聯,把上個月的記錄與當前月的記錄關聯
就能得到你想要的。
另一種方式就是分析函數了。
手機寫的費勁,如果需要明天給你寫一個。
⑦ sql server資料庫里如何獲得最近一個月的數據
1、常用日期方法(下面的GetDate() = '2006-11-08 13:37:56.233')
(1)DATENAME ( datepart ,date )
返回表示指定日期的指定日期部分的字元串。Datepart詳見下面的列表.
SELECT DateName(day,Getdate()) –返回8
(2)DATEPART ( datepart , date )
返回表示指定日期的指定日期部分的整數。
SELECT DATEPART(year,Getdate()) –返回2006
(3)DATEADD (datepart , number, date )
返回給指定日期加上一個時間間隔後的新datetime 值。
SELECT DATEADD(week,1,GetDate()) --當前日期加一周後的日期
(4)DATEDIFF ( datepart , startdate , enddate )
返回跨兩個指定日期的日期邊界數和時間邊界數。
SELECT DATEDIFF(month,'2006-10-11','2006-11-01') --返回1
(5)DAY ( date )
返回一個整數,表示指定日期的天datepart 部分。
SELECT day(GetDate()) –返回8
(6)GETDATE()
以datetime 值的SQL Server 2005 標准內部格式返回當前系統日期和時間。
SELECT GetDate() --返回2006-11-08 13:37:56.233
(7)MONTH ( date )
返回表示指定日期的「月」部分的整數。
SELECT MONTH(GETDATE()) --返回11
(8)YEAR ( date )
返回表示指定日期的「年」部分的整數。
SELECT YEAR(GETDATE()) --返回2006
2、取特定日期
(1)獲得當前日期是星期幾
SELECT DateName(weekday,Getdate()) --Wednesday
(2)計算哪一天是本周的星期一
SELECT DATEADD(week, DATEDIFF(week,'1900-01-01',getdate()), '1900-01-01') --返回2006-11-06 00:00:00.000
或
SELECT DATEADD(week, DATEDIFF(week,0,getdate()),0)
(3)當前季度的第一天
SELECT DATEADD(quarter, DATEDIFF(quarter,0,getdate()), 0)—返回2006-10-01 00:00:00.000
(4)如何取得某個月的天數
SELECT Day(dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,'2006-02-03')+1,0))) —返回28
(5)一個季度多少天
declare @m tinyint,@time smalldatetime
select @m=month(getdate())
select @m=case when @m between 1 and 3 then 1
when @m between 4 and 6 then 4
when @m between 7 and 9 then 7
else 10 end
select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'
select datediff(day,@time,dateadd(mm,3,@time)) —返回92
(6)獲得年月日(yyyy-MM-dd)
SELECT CONVERT(VARCHAR(10),GETDATE(),120) –返回2006-11-08
3、其它
(1)--下面的示例將日期指定為數字。資料庫引擎將0 解釋為1900 年1 月1 日。
SELECT MONTH(0), DAY(0), YEAR(0) –返回1 1 1900
--下面兩句是等效的
SELECT DATENAME(WEEKDAY,0)
SELECT DATENAME(WEEKDAY,'1900-01-01')
(2)SET DATEFIRST { number | @number_var }
將一周的第一天設置為從1 到7 的一個數字。
SET DATEFIRST 1 --表示一周的第一天是「星期一"
SELECT DATENAME(WEEKDAY,GETDATE()) --Wednesday
SELECT DATEPART(weekday,GETDATE()) --返回3
--查看當前設置情況
select @@DATEFIRST
(3)SET DATEFORMAT { format | @format_var }
設置用於輸入datetime 或smalldatetime 數據的日期部分(月/日/年)的順序。
...有效參數包括mdy、dmy、ymd、ydm、myd 和dym。
...該設置僅用在將字元串轉換為日期值時的解釋中。它不影響日期值的顯示。
...SET DATEFORMAT 的設置是在執行或運行時設置,而不是在分析時設置。
...SET DATEFORMAT 將覆蓋SET LANGUAGE 的隱式日期格式設置。
下面是例子:
-- Set date format to year, day, month.
SET DATEFORMAT ydm;
GO
DECLARE @datevar DATETIME;
SET @datevar = '1998/31/12';
SELECT @datevar AS DateVar;
GO
-- Set date format to year, month, day.
SET DATEFORMAT ymd;
GO
DECLARE @datevar DATETIME;
SET @datevar = '1998/12/31';
SELECT @datevar AS DateVar;
GO
⑧ sql 查詢一個月里的數據
SQL中查詢一個月里的數據,舉例及解決方法如下:
1、假如要查詢表t1欄位mydate為2015-10-1至2015-10-31之間的所有數據。
2、可以使用以下查詢語句:
SELECT*FROMt1WHEREmydateBETWEEN'2015-10-01'and'2015-10-31';
⑨ SQL語句獲取日期的月份
下面以SQL Server資料庫為例,可以用自帶函數MONTH獲取,sql語句如下:
select MONTH(時間列名) as month from 表名
步驟:
1、創建test1表,並賦值。
獲取到年份為「2008」。
⑩ 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')
(10)sql獲取本月數據擴展閱讀:
相關函數
SQL Aggregate 函數
SQL Aggregate 函數計算從列中取得的值,返回一個單一的值。
有用的 Aggregate 函數:
AVG() - 返回平均值
COUNT() - 返回行數
FIRST() - 返回第一個記錄的值
LAST() - 返回最後一個記錄的值
MAX() - 返回最大值
MIN() - 返回最小值
SUM() - 返回總和
SQL Scalar 函數
SQL Scalar 函數基於輸入值,返回一個單一的值。
有用的 Scalar 函數:
UCASE() - 將某個欄位轉換為大寫
LCASE() - 將某個欄位轉換為小寫
MID() - 從某個文本欄位提取字元
LEN() - 返回某個文本欄位的長度
ROUND() - 對某個數值欄位進行指定小數位數的四捨五入
NOW() - 返回當前的系統日期和時間