楼主: 燃烧的鸡血
5081 4

[问答] 有关where和between语句的疑惑 [推广有奖]

  • 3关注
  • 1粉丝

已卖:7份资源

本科生

91%

还不是VIP/贵宾

-

威望
0
论坛币
4386 个
通用积分
0
学术水平
2 点
热心指数
5 点
信用等级
2 点
经验
3316 点
帖子
48
精华
0
在线时间
154 小时
注册时间
2012-10-14
最后登录
2018-3-27

楼主
燃烧的鸡血 发表于 2013-3-16 15:08:17 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
小弟最近遇到一个很奇怪的问题,我想筛选出一段时期的股票观测值。采用的是如下代码:
  1. proc sql;
  2. create table short1st as
  3. select * from short90
  4. where mtdate between '31MAR11' and '31MAR10';
  5. quit;
复制代码
但是筛选出的结果却是只有11-3-31和10-3-31这两天的观测。between语句这样用不对吗? 2013-3-17.docx (18.19 KB, 需要: 1 个论坛币)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Between Where HERE Bet whe between where

沙发
peterpan_aus(未真实交易用户) 发表于 2013-3-16 15:26:19
需要把时间变成数值型 加''d试试

藤椅
燃烧的鸡血(未真实交易用户) 发表于 2013-3-16 15:28:20
peterpan_aus 发表于 2013-3-16 15:26
需要把时间变成数值型 加''d试试
试过了,出现了这种提示:

621  proc sql;
622  create table short1st as
623  select * from short90
624  where mtdate between '31MAR11'd and '31MAR10'd;
ERROR: 用“IN”的表达式具有不同数据类型的组件。
NOTE: 在 PROC SQL where 子句优化过程中,引用的 IN 可能在某个时间从 OR 转换为 IN。
625  quit;
NOTE: 由于出错,SAS 系统停止处理该步。

板凳
燃烧的鸡血(未真实交易用户) 发表于 2013-3-16 15:44:44
peterpan_aus 发表于 2013-3-16 15:26
需要把时间变成数值型 加''d试试
找到问题的症结了,原来我之前的日期格式保存成字符型的了,重新把它转化成字符型再用where between就可以了。

报纸
webgu(未真实交易用户) 发表于 2013-3-17 08:40:20
日期还是建议用日期格式,排序肯定不会错。
SAS资源
1. SAS 微信:StatsThinking
2. SAS QQ群:348941365

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-19 05:38