导入 .csv 文件后的 SQLite ORDER BY DATE
SQLite ORDER BY DATE after importing .csv file
我的问题很奇怪,因为它不会按日期字段对我的查询结果进行排序。这是我目前所做的:
我使用以下架构创建了一个 table:
CREATE TABLE temp_price_list (
kode TEXT,
nama TEXT,
merk TEXT,
jenis TEXT,
modal TEXT,
tanggal DATE,
keterangan TEXT);
以下是我的 csv 数据:
44O2-24V,SEAL-BEAM,KOITO-II,UNIVERSAL,OL3-10,2010/12/17,OCU2-201
4401-24V,SEAL-BEAM,KOITO-II,UNIVERSAL,OL3-10,2010/10/15,OCU2-201
4401-24V,SEAL-BEAM,KYOTO,BULAT-KECIL-2COP,,2010/03/31,OL311
4402-24V,SEAL-BEAM,KYOTO,BULAT-KECIL-3COP,,2013/02/06,OLU2-IO
4402-24V,SEAL-BEAM,GEN,UNIVERSAL,,2014/04/30,IEU219
"H4-7""SEGI",SEAL-BEAM,GEN JP,UNIVERSAL,,2010/04/30,IEU211
7010-BLAT,SEAL-BEAM,RRT,12V=3COP=75W,CWU2-IO,2013/02/06,IWU2=24
7010-BLAT,SEAL-BEAM,DEPO,12V=3COP=75W,SOU222=PC,2012/01/07,IWU2=24
6014-12V,SEAL-BEAM,KYOTO,BULAT BIG 7010-12V 3C0P,OAU2-201,2010/08/10,OEU2-10
6052-12V,SEAL-BEAM,KYOTO,SEGI BESAR 3-COP,CFU2-IO,2013/02/06,CSU2-10
4402-24V,SEAL-BEAM,GEN,UNIVERSAL,CEU2-22,2010/05/26,IU311
4401-24V,SEAL-BEAM,GEN,UNIVERSAL =34=CO3,CEU2-22,2010/06/30,IU311
4001-12V,SEAL-BEAM,AIKOH,UNIVERSAL,,2010/09/17,XOU229
4002-12V,SEAL-BEAM,KYOTORRT,UNIVERSAL,,2013/02/06,OLU2-IO
4002-12V,SEAL-BEAM,GEN,UNIVERSAL,,2011/04/16,CSU222
33365-87701,SYNCROMES-KEY,SB,S-75 SMALL,,2012/01/25,O3-10
33365-87503,SYNCROMES-KEY,SB,S-75 BIG,,2012/01/25,OLRT-10
33365-87503,SYNCROMES-KEY,GB,S-75 BIG,,2012/01/25,I3-11
9-33263-048-1,SYNCROMES-KEY,GTYPE,PTER 3/4,,2010/05/31,F311
8-94152-557-0,SYNCROMES-KEY,G-TYPE,PTER 1/2,,2010/03/31,F311
然后我使用以下命令导入这些数据:
.mode csv
.import C:/sqlite/test.csv temp_price_list
然后我将尝试使用以下查询获取数据:
SELECT * FROM temp_price_list ORDER BY DATE(tanggal) DESC;
但是它不按日期排序,与输入的排序相同。有什么想法吗?
我被困在这里..
原因-您table中的日期信息格式不正确。
如何解决
在日期列中插入数据之前,将数据转换为标准日期格式之一
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD
如下所述link。 http://www.sqlite.org/lang_datefunc.html
当你想向数据库中插入日期时,你可以使用这个代码。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date());
在数据库中插入字符串 'date'
我的问题很奇怪,因为它不会按日期字段对我的查询结果进行排序。这是我目前所做的:
我使用以下架构创建了一个 table:
CREATE TABLE temp_price_list (
kode TEXT,
nama TEXT,
merk TEXT,
jenis TEXT,
modal TEXT,
tanggal DATE,
keterangan TEXT);
以下是我的 csv 数据:
44O2-24V,SEAL-BEAM,KOITO-II,UNIVERSAL,OL3-10,2010/12/17,OCU2-201
4401-24V,SEAL-BEAM,KOITO-II,UNIVERSAL,OL3-10,2010/10/15,OCU2-201
4401-24V,SEAL-BEAM,KYOTO,BULAT-KECIL-2COP,,2010/03/31,OL311
4402-24V,SEAL-BEAM,KYOTO,BULAT-KECIL-3COP,,2013/02/06,OLU2-IO
4402-24V,SEAL-BEAM,GEN,UNIVERSAL,,2014/04/30,IEU219
"H4-7""SEGI",SEAL-BEAM,GEN JP,UNIVERSAL,,2010/04/30,IEU211
7010-BLAT,SEAL-BEAM,RRT,12V=3COP=75W,CWU2-IO,2013/02/06,IWU2=24
7010-BLAT,SEAL-BEAM,DEPO,12V=3COP=75W,SOU222=PC,2012/01/07,IWU2=24
6014-12V,SEAL-BEAM,KYOTO,BULAT BIG 7010-12V 3C0P,OAU2-201,2010/08/10,OEU2-10
6052-12V,SEAL-BEAM,KYOTO,SEGI BESAR 3-COP,CFU2-IO,2013/02/06,CSU2-10
4402-24V,SEAL-BEAM,GEN,UNIVERSAL,CEU2-22,2010/05/26,IU311
4401-24V,SEAL-BEAM,GEN,UNIVERSAL =34=CO3,CEU2-22,2010/06/30,IU311
4001-12V,SEAL-BEAM,AIKOH,UNIVERSAL,,2010/09/17,XOU229
4002-12V,SEAL-BEAM,KYOTORRT,UNIVERSAL,,2013/02/06,OLU2-IO
4002-12V,SEAL-BEAM,GEN,UNIVERSAL,,2011/04/16,CSU222
33365-87701,SYNCROMES-KEY,SB,S-75 SMALL,,2012/01/25,O3-10
33365-87503,SYNCROMES-KEY,SB,S-75 BIG,,2012/01/25,OLRT-10
33365-87503,SYNCROMES-KEY,GB,S-75 BIG,,2012/01/25,I3-11
9-33263-048-1,SYNCROMES-KEY,GTYPE,PTER 3/4,,2010/05/31,F311
8-94152-557-0,SYNCROMES-KEY,G-TYPE,PTER 1/2,,2010/03/31,F311
然后我使用以下命令导入这些数据:
.mode csv
.import C:/sqlite/test.csv temp_price_list
然后我将尝试使用以下查询获取数据:
SELECT * FROM temp_price_list ORDER BY DATE(tanggal) DESC;
但是它不按日期排序,与输入的排序相同。有什么想法吗? 我被困在这里..
原因-您table中的日期信息格式不正确。
如何解决
在日期列中插入数据之前,将数据转换为标准日期格式之一
YYYY-MM-DD
YYYY-MM-DD HH:MM
YYYY-MM-DD HH:MM:SS
YYYY-MM-DD HH:MM:SS.SSS
YYYY-MM-DDTHH:MM
YYYY-MM-DDTHH:MM:SS
YYYY-MM-DDTHH:MM:SS.SSS
HH:MM
HH:MM:SS
HH:MM:SS.SSS
now
DDDDDDDDDD
如下所述link。 http://www.sqlite.org/lang_datefunc.html
当你想向数据库中插入日期时,你可以使用这个代码。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String date = sdf.format(new Date());
在数据库中插入字符串 'date'