sql筛选access数据库数据日期是月的最后一天;

sql筛选access数据库数据日期是月的最后一天;,第1张

shijian>='2011-8-1' and shijian<='2011-8-10' 这个 日期时间范围里面, 没有 时分秒 的内容

那么就相当于

shijian>='2011-8-1 00:00:00' and shijian<='2011-8-10 00:00:00'

我怀疑你的 shijian 这个字段, 是包含 时分秒的

因此, 8月10号的数据, 因为 不满足 shijian<='2011-8-10 00:00:00' 的条件, 因此显示不出来

办法就是变成

shijian>='2011-8-1 00:00:00' and shijian<='2011-8-10 23:59:59'

1、创建测试表,

create table test_date(id varchar2(20), v_date date);

2、插入测试数据

insert into test_date values(1, sysdate-30);

insert into test_date values(2, sysdate-40);

insert into test_date values(3, sysdate-60);

insert into test_date values(4, sysdate-80);

insert into test_date values(5, sysdate-90);

commit;

3、查询表中全量数据,select t, rowid from test_date t;

4、编写sql,查询指定月份之前的几个月;例如,查询当前时间前两个月的数据;

 select t from test_date t where to_char(v_date,'yyyymm') = to_char(add_months(sysdate,-2), 'yyyymm');

GetDate()

得到当前日期。

Year()

年/Month()

月/Day()

日期

SELECT

YEAR(GETDATE())

AS

Y,MONTH(GETDATE())

AS

M,DAY(GETDATE())

AS

D

Y

M

D

-----------

-----------

-----------

2010

4

29

SELECT

CONVERT(CHAR(10),GETDATE(),120)

AS

CC

CC

----------

2010-04-29

日期类型属于间距尺度,可以进行加减运算,没有自然原点。

SELECT

DATEDIFF(DAY,CAST('2009-01-01'

AS

DATETIME),CAST('2009-03-11'

AS

DATETIME))

AS

d

d

-----------

69

SELECT

DATEadd(DAY,33,CAST('2009-01-01'

AS

DATETIME))

AS

d

d

-----------------------

2009-02-03

00:00:00000

对应函数方法等建议参见sqlserver的帮助文件,里边有详细的例子和说明。

不过这种厂家自定函数移植时候会很困难。

SELECT x月份,x销售人员,y销售渠道,售前利润,售后利润,售前利润+售后利润 AS 整体利润

FROM(

SELECT CONVERT(VARCHAR(7),销售日期,121) AS 月份,a销售人员,(SELECT DISTINCT c销售渠道+',' FROM a c WHERE c销售人员=a销售人员 

  AND CONVERT(VARCHAR(7),c销售日期,121)=CONVERT(VARCHAR(7),a销售日期,121) FOR XML PATH(''))AS 销售渠道,SUM(a利润)售前利润 

FROM dboA a 

GROUP BY CONVERT(VARCHAR(7),销售日期,121) ,a销售人员

)x

LEFT JOIN(

SELECT CONVERT(VARCHAR(7),a退款日期,121) AS 月份,a销售人员,(SELECT DISTINCT c销售渠道+',' FROM a c WHERE c销售人员=a销售人员 

  AND CONVERT(VARCHAR(7),c销售日期,121)=CONVERT(VARCHAR(7),a退款日期,121) FOR XML PATH(''))AS 销售渠道,SUM(a利润)售后利润 

FROM dboB a 

GROUP BY CONVERT(VARCHAR(7),退款日期,121) ,a销售人员

)y ON y月份 = x月份 AND y销售人员 = x销售人员 AND y销售渠道 = x销售渠道

以上就是关于sql筛选access数据库数据日期是月的最后一天;全部的内容,包括:sql筛选access数据库数据日期是月的最后一天;、sql查询指定月份之前的几个月、从数据库中获取日期,获取的日期是否在某个月内的SQL语句怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10161076.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存