如何提取从本月第一天到今天的数据 -1
How to extract data from 1st day of the month till today's date -1
我正在尝试提取所有具有从该月的第一天到昨天的日期时间的数据,例如:
01/06/2017 - 22/06/2017
我用过这个代码:
Select *
from testDb.dbo.Company1
WHERE MONTH(CreatedDate) = MONTH(dateadd(dd, -1, GetDate())) AND
YEAR(CreatedDate) = YEAR(dateadd(dd, -1, GetDate()))
编辑
我的CreatedDate列,它的数据类型是DateTime。不确定是否有任何区别。
但这会打印出 01/06/2017 - 23/06/2017 的所有数据。我应该写什么代码来打印所有数据直到(今天的日期-1)?感谢您的帮助,祝您有美好的一天!
我认为这个 where
子句符合您的要求:
where createdDate >= dateadd(month, 0, datediff(month, 0, getdate())) and
createdDate < cast(getdate() as date)
与其分别比较月份和年份部分,不如尝试使用两个完整数据点的范围来限定结果集,一个是月初,另一个是昨天。
SELECT *
FROM testDb.dbo.Company1
WHERE
CreatedDate BETWEEN DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) AND
DATEADD(day, -1, CAST(GETDATE() AS date))
当今天是本月的第一天时,这将不起作用
SELECT *
FROM your_table
WHERE createdDate BETWEEN
CAST('1 ' + DateName(month, GetDate()) + ' ' +Year(GetDate()) as datetime)
AND DATEADD(day, -1, GETDATE() )
试试这个查询 --
SELECT *
FROM testDb.dbo.Company1
WHERE DATEPART(Month, CreatedDate) = Datepart(Month, GETDATE())
AND DATEPART(Day, CreatedDate) <= DATEPART(Day, Getdate())
编辑:
SELECT *
FROM testDb.dbo.Company1
WHERE DATEPART(Month, CreatedDate) = Datepart(Month, GETDATE())
AND DATEPART(Day, CreatedDate) < DATEPART(Day, Getdate())
编辑 2:
SELECT CONVERT(VARCHAR(30),CreatedDate,120) As [CreatedDate]
FROM testDb.dbo.Company1
WHERE DATEPART(Month, CreatedDate) = Datepart(Month, GETDATE())
AND DATEPART(Day, CreatedDate) < DATEPART(Day, Getdate())
我正在尝试提取所有具有从该月的第一天到昨天的日期时间的数据,例如:
01/06/2017 - 22/06/2017
我用过这个代码:
Select *
from testDb.dbo.Company1
WHERE MONTH(CreatedDate) = MONTH(dateadd(dd, -1, GetDate())) AND
YEAR(CreatedDate) = YEAR(dateadd(dd, -1, GetDate()))
编辑
我的CreatedDate列,它的数据类型是DateTime。不确定是否有任何区别。
但这会打印出 01/06/2017 - 23/06/2017 的所有数据。我应该写什么代码来打印所有数据直到(今天的日期-1)?感谢您的帮助,祝您有美好的一天!
我认为这个 where
子句符合您的要求:
where createdDate >= dateadd(month, 0, datediff(month, 0, getdate())) and
createdDate < cast(getdate() as date)
与其分别比较月份和年份部分,不如尝试使用两个完整数据点的范围来限定结果集,一个是月初,另一个是昨天。
SELECT *
FROM testDb.dbo.Company1
WHERE
CreatedDate BETWEEN DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0) AND
DATEADD(day, -1, CAST(GETDATE() AS date))
当今天是本月的第一天时,这将不起作用
SELECT *
FROM your_table
WHERE createdDate BETWEEN
CAST('1 ' + DateName(month, GetDate()) + ' ' +Year(GetDate()) as datetime)
AND DATEADD(day, -1, GETDATE() )
试试这个查询 --
SELECT *
FROM testDb.dbo.Company1
WHERE DATEPART(Month, CreatedDate) = Datepart(Month, GETDATE())
AND DATEPART(Day, CreatedDate) <= DATEPART(Day, Getdate())
编辑:
SELECT *
FROM testDb.dbo.Company1
WHERE DATEPART(Month, CreatedDate) = Datepart(Month, GETDATE())
AND DATEPART(Day, CreatedDate) < DATEPART(Day, Getdate())
编辑 2:
SELECT CONVERT(VARCHAR(30),CreatedDate,120) As [CreatedDate]
FROM testDb.dbo.Company1
WHERE DATEPART(Month, CreatedDate) = Datepart(Month, GETDATE())
AND DATEPART(Day, CreatedDate) < DATEPART(Day, Getdate())