Date time calculation

hello guys,
I had been to many forums and many topics in this site as well for my question but did not get any solution.
My question is how i can get y'day date with time stamp
today is 20100729103819 and i am looking for output as 20100728103819.
in simple words as we do in oracle sysdate-1 (with timestamp).

Thanks a lot!

How about this?

Hi,

 date --d "1 day ago" +%Y%m%d%H%M%S

This is GNUism - may not be applicable.

For non GNU:

date '+%m %d %Y' |  
{  
read MONTH DAY YEAR 
DAY=`expr "$DAY" - 1`  
case "$DAY" in  
        0)  
           MONTH=`expr "$MONTH" - 1`  
                case "$MONTH" in  
                        0)  
                           MONTH=12  
                           YEAR=`expr "$YEAR" - 1`  
                        ;;  
                esac  
        DAY=`cal $MONTH $YEAR | grep . | fmt -1 | tail -1`  
esac  
echo "Yesterday was: $MONTH $DAY $YEAR"  
}

or

OFFSET=${1:-1}

case $OFFSET in
  *[!0-9]* | ???* | 3? | 29) print -u2 "Invalid input" ; exit 1;;
esac

eval `date "+day=%d; month=%m; year=%Y`
typeset -Z2 day month
typeset -Z4 year

day=$((day - OFFSET))
if (( day <= 0 )) ;then
  month=$((month - 1))
  if (( month == 0 )) ;then
    year=$((year - 1))
    month=12
  fi
  set -A days `cal $month $year`
  xday=${days[$(( ${#days[*]}-1 ))]}
  day=$((xday + day))
fi

echo $day

EDIT: My BAD, I didnt see the format you wanted, you will have to modify a little to get your format.