[Solved] Two dates comparision in AIX


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting [Solved] Two dates comparision in AIX
# 1  
Old 06-20-2013
[Solved] Two dates comparision in AIX

Hi all,

I have a shell script which connects to database and gets two date values in two variables a and b.

When I do echo a, echo b, it shows dates such as

a=15-JUN-13
b=14-APR-13

Now, I want to say if (a > b) send email but I get error bad number. Looks like these dates are not in the correct format and hence I get an error.

How can I accomplish this task on AIX?

Thanks in Adv.

- Sam
# 2  
Old 06-20-2013
Take a look at this thread: Date Arithmetic in FAQ section.
# 3  
Old 06-20-2013
Hi, I went thru almost all the posts but could not find answer to my question. I am sorry if I missed any post that has it.

Could someone please help?

Thanks!
# 4  
Old 06-20-2013
Ok, here is one way of doing:
Code:
#!/bin/ksh

a="15-JUN-13"
b="14-APR-13"

awk -v A="$a" -v B="$b" '
        BEGIN {
                j = split("JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC",M,",")
                split(A,m,"-")
                split(B,n,"-")
                for ( i = 1; i <= j; i++ )
                {
                        if(M[i]==m[2])
                                D1=m[1] i m[3]
                        if(M[i]==n[2])
                                D2=n[1] i n[3]
                }
                if(D1>D2)
                        print A " is greater"
                else
                        print B " is greater"
        }
'

# 5  
Old 06-21-2013
Yoda, posted solution doesn't work for
12-MAR-13 and 14-DEC-03
or
2-JUN-13 and 14-APR-13

To correct, you could use the following replacement for the D1 and D2 assignments:

Code:
a="12-MAR-13"
b="14-DEC-03"

awk -v A="$a" -v B="$b" '
BEGIN {
        j = split("JAN,FEB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC",M,",")
        split(A,m,"-")
        split(B,n,"-")
        for ( i = 1; i <= j; i++ )
        {
                if(M[i]==m[2])
                        D1=sprintf("%02d%02d%04d", m[3], m[1], i)
                if(M[i]==n[2])
                        D2=sprintf("%02d%02d%04d", n[3], n[1], i)
        }
        if(D1>D2)
                print A " is greater"
        else
                print B " is greater"
}'


Last edited by Chubler_XL; 06-21-2013 at 01:06 AM..
This User Gave Thanks to Chubler_XL For This Post:
# 6  
Old 06-21-2013
Thanks to both of you for a very quick help. That saved my day.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Display dates between two dates

Hi All, I have 2 dates in mm/dd format. sdate=10/01 (October 01) edate=10/10 (October 10) I need the dates in between these 2 dates like below. 10/01 10/02 10/03 10/04 10/05 10/06 10/07 10/08 (1 Reply)
Discussion started by: jayadanabalan
1 Replies

2. UNIX for Advanced & Expert Users

How to get the Missing dates between two dates in the table?

Hi Am Using Unix Ksh ... I have a Table called date select * from date ; Date 01/02/2013 06/02/2013 I need the output as Missing Date 01/02/2013 02/02/2013 03/02/2013 04/02/2013 05/02/2013 06/02/2013 (2 Replies)
Discussion started by: Venkatesh1
2 Replies

3. Shell Programming and Scripting

Generating dates between two dates

HI, i have row like this HHH100037440313438961000201001012012073110220002 N in this i have 2 dates in pos 25-32 and 33-40 , so based upon the se two dates , i need to generated records between these two values so in the above record 20100101 and 20120731 need to genearte rows like this... (4 Replies)
Discussion started by: sathishsr
4 Replies

4. UNIX for Dummies Questions & Answers

How to write the dates between 2 dates into a file

Hi All, I am trying to print the dates that falls between 2 date variables into a file. Here is the example. $BUS_DATE =20120616 $SUB_DATE=20120613 Output to file abc.txt should be : 20120613,20120614,120120615,20120616 Can you pls help me accomplish this in LINUX. Thanks... (5 Replies)
Discussion started by: dsfreddie
5 Replies

5. Shell Programming and Scripting

[Solved] AIX ksh script -d <- what does it mean?

I'm looking at a line in a script: && DRROOT="/dir1" || DRROOT="/dir2" I'm trying to understand it. Is there a "-d" command and is it seeing if /dir1 exists and, if so, set an environment variable named DRROOT to "/dir1", else set DRROOT to "/dir2" ? Thanks, -dog ---------- Post... (0 Replies)
Discussion started by: landog
0 Replies

6. Emergency UNIX and Linux Support

Replacing dates]] with (dates)]]

Hi guys, For my wiki site I need to fix 1400 pages that use the wrong date format, most pages (not all) use eg. 1988]] I need to change that to (1988)]] The date range goes back to 1400 so I guess I need to do the following ssh into my server, dump mysql database vi .sql dump search... (20 Replies)
Discussion started by: lawstudent
20 Replies

7. Programming

SQL: find if a set od dates falls in another set of dates

Don't know if it is important: Debian Linux / MySQL 5.1 I have a table: media_id int(8) group_id int(8) type_id int(8) expiration date start date cust_id int(8) num_runs int(8) preferred_time int(8) edit_date timestamp ON UPDATE CURRENT_TIMESTAMP id... (0 Replies)
Discussion started by: vertical98
0 Replies

8. Shell Programming and Scripting

[solved] merging two files and writing to another file- solved

i have two files as file1: 1 2 3 file2: a b c and the output should be: file3: 1~a 2~b 3~c (1 Reply)
Discussion started by: mlpathir
1 Replies

9. Shell Programming and Scripting

Need script to generate all the dates in DDMMYY format between 2 dates

Hello friends, I am looking for a script or method that can display all the dates between any 2 given dates. Input: Date 1 290109 Date 2 010209 Output: 300109 310109 Please help me. Thanks. :):confused: (2 Replies)
Discussion started by: frozensmilz
2 Replies

10. Shell Programming and Scripting

Vmstat VS PS comparision not match --need help in urgent AIX

Hi I have a AIX box, People seatting and looking out for the vmstat and PS CPU % use there . Problem is that : they used vmstat and looked for the cpu clolumn which basically have column like cs us sy id ... (1 Reply)
Discussion started by: jambesh
1 Replies
Login or Register to Ask a Question