- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I am looking to convert a varchar date(Date2) in PROC SQL to for use in a query without stepping the table. The varchar is in YYYYMMDD format in the SELECT and I need to convert it to date9. so I can use it in a WHERE clause on the first CREATE TABLE. The converted date needs to be compatible with an INTNX statement.
proc sql;
create table blahblah as
select Date2,
column1,
column2,
from xxx.xxxx
where Date2 GE intnx('day',today(),-3,'same'
Any help much appreciated.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
select
input(Date2,yymmdd8.) as Date2 format=date9.,
column1,
column2
from xxx.xxxx
where calculated Date2 GE intnx('day',today(),-3,'same')
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
select
input(Date2,yymmdd8.) as Date2 format=date9.,
column1,
column2
from xxx.xxxx
where calculated Date2 GE intnx('day',today(),-3,'same')
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
If you don't need to convert the variable to a date but want change the WHERE clause you could replace the date value with the equivalent string by using macro code. So one of these:
where Date2 GE "%sysfunc(intnx(day,%sysfunc(today()),-3),yymmddn8.)"
where Date2 GE "%sysfunc(putn(%sysfunc(today())-3,yymmddn8.))"
The GE will work because strings in YYYYMMDD order sort lexicographically in the same order as the dates they represent sort chronologically.