问题描述:在写shell脚本时需要将一个变量置为昨天的日期deepin linux,并将其转换为Unix时间戳,即自协调世界时1970年01月01日00时00分以来的秒数
解决方法一:
timeago=`date +%Y-%m-%d --date="-1 day"`
或者timeago=`date -d "-1 day" +%F`
该方法不能将昨日时间转换为Unix时间戳
需要在sql中将时间进行转换如何安装LINUX,增加条件:oracle_to_unix(to_date('"${timeago}"','yyyy-mm-dd'))
该方法可以解决需求,但是不直观也会影响SQL执行效率
解决方法二:
yesterday=`date+"%Y-%m-%d00:00:00"-d"-1days"`
echo$yesterday
timeago=`date-d"${yesterday}"+%s`
echo$timeago
能解决,但是仍然不够精简仍需优化
解决方法三:
timeago=`date -d `date -d "yesterday" +%F` +%s`
使用反向单引号unix时间戳转换成时间,直接输出昨日的Unix时间戳,解决该需求,不需要在SQL中对时间字段进行二次处理unix时间戳转换成时间,可直接使用。
反向单引号的作用是将内部信息执行并允许被引用。举例如下: