所以我使用命令从我的数据库中获取日期。
date1=$(sqlplus -s $1/$2@$3 <<EOF
set heading OFF termout ON trimout ON feedback OFF
set pagesize 0
select DATE from data_table where type='B_DATE';
exit;
EOF)
回显日期会给出以下值。
02-JUN-14 12.30.00.000000 PM
当我尝试使用
更改此日期的格式时bdate=$(date -d "$date1" +"%A %d-%m-%Y")
我收到错误
date: invalid date `02-JUN-14 12.30.00.000000 PM'
任何人都可以解释我做错了什么以及如何纠正它?
答案 0 :(得分:2)
您必须将.
替换为:
:
date='02-JUN-14 12.30.00.000000 PM'; date=$(echo "$date" | sed -re 's/([0-9]+)\.([0-9]+)\.([0-9]+)/\1:\2:\3/'); echo $date;date -d "$date" +"%A %d-%m-%Y"
02-JUN-14 12:30:00.000000 PM
Monday 02-06-2014
看看我是如何使用sed。
转换日期格式的