2

SQLITEstrtime関数を使用して、日付形式を任意の形式の文字列に変換できます

select  strftime('%Y-%d-%m-%Y', '2012-09-13 12:44:22');

しかし、フォーマットされている文字列があります。日付比較で使用できるように、フォーマットdd-MM-yyyyに変換するにはどうすればよいですか。yyyy-MM-ddsqlite

4

3 に答える 3

8

次のようなものを使用します。

select datetime(substr(col, 7, 4) || '-' || substr(col, 4, 2) || '-' || substr(col, 1, 2)) from table;

ここで、colはyyyy-MM-dd 形式の日付を持つテーブルの列です

于 2013-03-22T06:19:14.163 に答える
2

これを試すことができます

String date = "23-03-2013";
try {
    SimpleDateFormat format = new SimpleDateFormat(""dd-MM-yyyy");

    SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");

   date = df2.format(format.parse(str));

} catch (java.text.ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
}
于 2013-03-22T06:09:39.660 に答える
1

同様の問題がありました。日付文字列が一貫して入力されていなかったため、月、日、年の長さが一貫していませんでした。以下は、M/D/YYYY 形式の一貫性のない文字列を、一貫して YYYY-MM-DD 形式の日付に変換するために行ったことです。

    SELECT "DISP DATE", DATE(year||'-'||month||'-'||day) as dt_frmtd 
    FROM 
    (
    SELECT *
, CASE WHEN LENGTH(substr("DISP DATE", 1, instr("DISP DATE",'/')-1)) = 2 
       THEN substr("DISP DATE", 1, instr("DISP DATE",'/')-1)
       ELSE '0'|| substr("DISP DATE", 1, instr("DISP DATE",'/')-1)
       END as month
, CASE WHEN LENGTH(substr(substr("DISP DATE", instr("DISP DATE",'/')+1), 1, instr(substr("DISP DATE", instr("DISP DATE",'/')+1),'/')-1)) = 2
       THEN substr(substr("DISP DATE", instr("DISP DATE",'/')+1), 1, instr(substr("DISP DATE", instr("DISP DATE",'/')+1),'/')-1)
       ELSE '0'|| substr(substr("DISP DATE", instr("DISP DATE",'/')+1), 1, instr(substr("DISP DATE", instr("DISP DATE",'/')+1),'/')-1)
       END AS day           
, CASE WHEN LENGTH(substr(substr("DISP DATE", instr("DISP DATE",'/')+1), instr(substr("DISP DATE", instr("DISP DATE",'/')+1),'/')+1)) = 4
       THEN substr(substr("DISP DATE", instr("DISP DATE",'/')+1), instr(substr("DISP DATE", instr("DISP DATE",'/')+1),'/')+1)
       ELSE '20'|| substr(substr("DISP DATE", instr("DISP DATE",'/')+1), instr(substr("DISP DATE", instr("DISP DATE",'/')+1),'/')+1)
       END AS year 
    FROM DISP 
    )
于 2016-07-07T22:37:26.510 に答える