2016-09-23 48 views
0

有人可以請建議一種簡單而簡短的方法將「Thu Sep 22 3:50 2016」轉換爲「2016 -09-22「在Solaris中,通過shell腳本?在沒有GNU日期的情況下將Solaris「Thu Sep 22 3:50 2016」轉換爲Solaris中的「2016-09-22」

我沒有可以在Solaris GNU日期後下討論: Convert date String to number on Solaris shell script gives No such file or directory

我需要查詢的SQL服務器數據庫,其中日期保存格式「 2016年9月6日」,因此我需要將其轉換爲

回答

0

爲什麼不使用Oracle的sysdate?

SELECT * FROM your_table其中saved_date> = TO_CHAR(SYSDATE, 'YYYY-MM-DD')

+0

得到了錯誤: 'TO_CHAR' 是無法識別的內置函數名稱。 – user2306856

+0

這是一個PL/SQL語句。你能否更新你的原始問題以包含你正在運行的代碼? – zerohero

+0

你在Solaris上運行MS SQL Server? – zerohero

1

其實,你有GNU日期可用,但這裏反正通過腳本來實現這一目標的一種方法:

#!/bin/ksh 
a="Thu Sep 22 3:50 2016" 
echo $a | nawk ' 
BEGIN { 
    m=1 
    m2m["Jan"]=m++; 
    m2m["Feb"]=m++; 
    m2m["Mar"]=m++; 
    m2m["Apr"]=m++; 
    m2m["May"]=m++; 
    m2m["Jun"]=m++; 
    m2m["Jul"]=m++; 
    m2m["Aug"]=m++; 
    m2m["Sep"]=m++; 
    m2m["Oct"]=m++; 
    m2m["Nov"]=m++; 
    m2m["Dec"]=m++; 
} 
{ 
    printf("%s-%02d-%02d\n",$5,m2m[$2],$3) 
}' 

輸出:

2016-09-22 
相關問題