



SELECT
UserName
,GMTDate
,Sum(FlowCount) as FlowCount
,[Type]
FROM [LOGSERVER].[dbo].[CDNHTTP]
where DATEDIFF(month,[GMTDate],GETDATE())=2 // 改變這可以得到 某個月資料
group by [UserName] ,[GMTDate],[Type]
order by [GMTDate]
這是MS SQL 已經實作的功能,現在改成mySQL 要怎么做?
查了下 mySQL 有 DATEDIFF 但回傳時天沒有引數 ,DATE_SUB 好像也不行,不知道怎么弄
uj5u.com熱心網友回復:
大概是這么一個MSSQL表
CREATE TABLE [dbo].[CDNHTTP](
[ID] [int] IDENTITY(1,1) NOT NULL,
[UserName] [varchar](50) NULL,
[GMTDate] [datetime2](7) NULL,
[FlowCount] [float] NULL,
[Type] [varchar](255) NULL,
PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
記錄有 時間、站點、流量使用、使用協議,
統計每個站點 各月份流量使用情況,當月的顯示當天截止日期
如:需要統計上個月 各個站點每天 流量情況,MS SQL 如下
SELECT
UserName
,GMTDate
,Sum(FlowCount) as FlowCount
,[Type]
FROM [LOGSERVER].[dbo].[CDNHTTP]
where DATEDIFF(month,[GMTDate],GETDATE())=1
group by [UserName] ,[GMTDate],[Type]
order by [GMTDate]
本月情況 只需改引數 where DATEDIFF(month,[GMTDate],GETDATE())=[color=#FF0000]0[/color]
以此類推,那么mySQL 該如何 查詢這個。
謝謝了 第一次用mySQL
uj5u.com熱心網友回復:

MS SQL是這樣的

mySQL 這樣好像不行
uj5u.com熱心網友回復:
MYSQL datediff這樣用DATEDIFF(CURDATE(),[GMTDate])=2
uj5u.com熱心網友回復:
SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDatemysql 用這個回傳天數。
uj5u.com熱心網友回復:
這只能查某一天的吧 DATEDIFF 在msSQL 里邊有三個引數
DATEDIFF(datepart,startdate,enddate)
第一個就是 是按 什么時間間隔 查
對應 mySQL
TimeDiff 是 hh
DATEDIFF是 day
現在要引數是 月 ?mySQL怎么處理?對應哪個函式?需要自己算 該月天數 然后用 DATEDIFF嗎?
uj5u.com熱心網友回復:


uj5u.com熱心網友回復:
正在想是不是要這樣做!感覺也沒其他方法了
uj5u.com熱心網友回復:
取月份用日期格式函式date_format
date_format(GMTDate,'%Y-%m')=date_format(DATE_SUB(curdate(), INTERVAL 2 MONTH),'%Y-%m')
uj5u.com熱心網友回復:

折騰出來了
uj5u.com熱心網友回復:
改變哪個 data_SUB 引數值就可以了,查詢本月 上月 N月前的
uj5u.com熱心網友回復:

非常感謝這個確實是我想要的,上面那個只能取出本月和 上幾個月總和
謝謝了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/98126.html
標籤:MySQL
