ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > SQL in Excel > SQL中cdate函数在数据透视表日期组合中的应用

SQL中cdate函数在数据透视表日期组合中的应用

作者:绿色风 分类: 时间:2022-08-18 浏览:106
楼主
wise
语句一:
select  * from [Sheet1$]
union all
select "2008-12-30" as 日期,部门,数量 from [Sheet2$]
语句二:
select  * from [Sheet1$]
union all
select cdate("2008-12-30") as 日期,部门,数量 from [Sheet2$]


注意这两句语句的区别,语句一中的日期看起来的确像日期形式,但用在数据透视表里面,却不能进行日期组合,并且组合的时候
出现的日期形式很奇怪,不信你可以试一下,主要原因是语句一中"2008-12-30" 是文本形式存在的类型.
而为了解决这个问题,用cdate函数就可以解决了,在语句二中就是那样的应用,并且使添加的日期能进行日期组合。
这个是在为一个学员解决问题的时候发现的一个意外惊喜。
不知道我总结得是否正确。



日期区别.rar
2楼
apolloh
我没有测试,你改成单引号试试看。
  1. select  * from [Sheet1$] union all select '2008-12-30' as 日期,部门,数量 from [Sheet2$]
3楼
wise
单引号和双引号没有区别,依然是文本。
黄版可以测试一下。
上次我已经和一个朋友讨论了。
4楼
wise
 

这个第一语句的情况
5楼
wise
 

这个是第2个语句的情况


无论单引号和双引号,都不会改变的
6楼
apolloh
谢谢,这帖纠正了我一个认识的偏差。Excel中双引号也可以用于SQL语句的日期引用,确实是第一次知道。
7楼
whsfhwm
我也补充一下:

单引号、双引号都是将其内容作为文本保存处理,使用cdate()返回日期类型;还可以使用以下两种写法:

  1. select  * from [Sheet1$]
  2. union all
  3. select datevalue('2008-12-30') as 日期,部门,数量 from [Sheet2$]
或者:

  1. select  * from [Sheet1$]
  2. union all
  3. select #2008-12-30# as 日期,部门,数量 from [Sheet2$]
8楼
xpm130
站在你们巨人的肩膀上学习.快快长进~~~

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap