Difference of 2 dates in shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Difference of 2 dates in shell script
# 1  
Old 12-01-2010
Difference of 2 dates in shell script

Hi.,

After retrieving values from DB I have two datestamps in format:

HTML Code:
12/01/2010:05:40:00 AM and 12/01/2010:06:00:00 PM.

general time format: MM/DD/YYYY:HH:MM:SS AM or PM
Any quick solution to get the difference of two in the format : 1 day(s) 12:20:00

Thanks.,
# 2  
Old 12-01-2010
I think that previous posts determined that you do not have GNU "date".
What Operating System are you using?
What Shell are you using?
Do you have "perl"?
# 3  
Old 12-01-2010
Somebody here may give you a simple subtraction algorithm -- which will fail sometimes. What you need is something more robust.

What DBMS are you using? - many of them provide date subtraction that works reliably.
Plus you can get date/times in formats like Julian days which are floating point numbers.
You can use bc to do the arithmetic operation on these numbers

The reason for waffling is that you have to convert both dates into something like epoch seconds, then subtract, and return days, hours, minutes & seconds. You can do this in perl. It is just loads easier inside most modern dbms. Plus your perl may not have DateTime::Format::strptime.
# 4  
Old 12-01-2010
In perl you can use somethin like this:
Code:
#!/usr/bin/perl

use Time::Piece;
use POSIX qw(strftime);

$before = Time::Piece->strptime("12/01/2010:05:40:00 AM", "%d/%m/%Y:%I:%M:%S %p"); 
$after  = Time::Piece->strptime("12/01/2010:06:00:00 PM", "%d/%m/%Y:%I:%M:%S %p");
$secdiff = $after - $before;
print  strftime( '%d %H:%M:%S', gmtime(int($secdiff)))."\n";;

# 5  
Old 12-01-2010
Quote:
Originally Posted by IND123
...
After retrieving values from DB I have two datestamps in format:
...
Any quick solution to get the difference of two...
...
If feasible, fetch the two dates as well as their difference from the database itself. That way you prevent the problem from becoming a bigger problem.

tyler_durden
# 6  
Old 12-02-2010
Hi.,

I tried solution suggested by "Klashxx". But it is resulting in following error:
HTML Code:
Can't locate Time/Piece.pm in @INC
.....
BEGIN failed---Compilation aborted at line 3
I do have perl utility in Unix shell (bash) I am using at /usr/bin/perl.
Flavor of unix is Linux. And the DB used in Oracle 10g.

Pl. suggest.
# 7  
Old 12-02-2010
Do it through the DB , ..something to start:
Code:
select cast(
    NUMTODSINTERVAL(
       to_date('12/01/2010:06:00:00 PM','MM/DD/YYYY:HH12:MI:SS PM')-to_date('12/01/2010:05:40:00 AM','MM/DD/YYYY:HH12:MI:SS AM')
    ,'DAY')
as interval day(2) to second(0) ) from dual

Result:
Code:
+00 12:20:00

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Difference between two dates

Hi There I am trying to find the difference between two dates in seconds, by taking the first 10 digits of the file name itself, which I have done as shown below: current_time=`date +%s` last_login_of_tim=`date -d @1489662376 +%s` diff_sec=$(($current_time-$last_login_of_tim)) ... (5 Replies)
Discussion started by: simpsa27
5 Replies

2. Fedora

Difference of dates

I have a script which is printing date in below format while writing the logs. theDate=`date +"%m%d%Y"` theTime=`date +"%H%M%S"` echo $theDate $theTime How can i find out difference current time and above format. Appreciate your help. (6 Replies)
Discussion started by: srikanth38
6 Replies

3. Shell Programming and Scripting

Comparing dates in shell script

Hi All, I have a date variable say dt="2014-01-06 07:18:38" Now i need to use this variable to search a log and get the entries which occured after that time. (1 Reply)
Discussion started by: Girish19
1 Replies

4. Shell Programming and Scripting

Difference between 2 dates

Hi Friends, I have a file that has the contents like below: file1.txt 5,13/07/2013 23:25:25,14/07/2013 19:40:21 5,13/07/2013 23:25:25,14/07/2013 19:40:43 5,12/07/2013 23:50:50,13/07/2013 20:30:26 5,12/07/2013 23:20:24,13/07/2013 19:40:53 60,14/07/2013 00:00:00,14/07/2013 23:00:39... (5 Replies)
Discussion started by: vsachan
5 Replies

5. Shell Programming and Scripting

Difference in dates in days (ksh shell)

Hi Guys, Need a small help, how do i get the difference between two dates (in days) in KSH shell My date is in mm/dd/YYYY format, Is there a function to get time stamp from the respective date and time ( mm/dd/yyyy HH:MM:SS) (1 Reply)
Discussion started by: selvankj
1 Replies

6. Shell Programming and Scripting

Shell script to calculate difference between 2 dates

shell script to calculate difference between 2 dates (3 Replies)
Discussion started by: gredpurushottam
3 Replies

7. Shell Programming and Scripting

Difference between two dates

hi all, I need a help for below requirement. Difference between two dates"12-11-2009" and "03-25-2012" (mm-dd-yy format") in weeks and days and hours Please help me for this. Thanks in adv.... I am working in AIX, so dont have below command:- date --version (2 Replies)
Discussion started by: gani_85
2 Replies

8. Shell Programming and Scripting

Difference between two dates

Hi! I have two parameters like this: YYYY-MM-DD YYYY-MM-DD My question is, there is a direct command for get the elapsed time between the 2 dates, or I have to find another way? Thx! (1 Reply)
Discussion started by: MalaTomi
1 Replies

9. Shell Programming and Scripting

Difference between two dates.

Hi all. My question may seems to be similar to one that already been here. But i need a little other solution. I have two dates in format dd/mm/yyyy. I need to find number of days between them. I need to do it in bash script. I am running on Solaris machine and have cutted 'date' command version... (1 Reply)
Discussion started by: kukuruku
1 Replies

10. Shell Programming and Scripting

Difference between two dates...

Hi All, Wish you a Happy New year... I have to find the difference between two dates, the result should be the number of days. I have seen the "datecalc" function. Its good, can I have any other alternative. Thanks in Advance Raju (4 Replies)
Discussion started by: rajus19
4 Replies
Login or Register to Ask a Question