添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
强健的企鹅  ·  c - Error ...·  2 年前    · 
有爱心的回锅肉  ·  ruby on rails - ...·  2 年前    · 
深情的硬盘  ·  How to create surface ...·  2 年前    · 

不能从日期到日期的SQLite中获取数据

0 人关注

我有一个安卓的SQLite数据库,我想从一个表 "Transactions "中只选择从date1到date2的数据。

Code:

SELECT * FROM Transactions WHERE DATE(substr(transactiondate,7,4) ||substr(transactiondate,4,2) ||substr(transactiondate,1,2)) BETWEEN DATE(20201030) AND DATE(20201031)

以下是数据库数据

result of query:

Execution finished without errors.
Result: 0 rows returned in 13ms

更新:以下是我如何将我的数据改为 "年-月-日 "格式。

val c = Calendar.getInstance()
    val year = c.get(Calendar.YEAR)
    val month = c.get(Calendar.MONTH)
    val day = c.get(Calendar.DAY_OF_MONTH)
    val correctMonthDefault = month+1
    if(day<10 && correctMonthDefault>9){
    tv_add_date.setText("" + year + "-" + correctMonthDefault +"-"+ "0"+ day )}
    else if(correctMonthDefault<10 && day>9)
        tv_add_date.setText("" + year + "-0" + correctMonthDefault +"-"+ "0"+ day )}
    else if(day<10 && correctMonthDefault<10){
        tv_add_date.setText("" + year + "-0" + correctMonthDefault +"-0" + day )}
    else {
        tv_add_date.setText("" + year + "-" + correctMonthDefault +"-" + day )}
    btnCalendar.setOnClickListener {
        val dpd = DatePickerDialog(this, DatePickerDialog.OnDateSetListener { datePicker, mYear, mMonth, mDay ->
            var correctMonth = mMonth + 1
            if(mDay<10 && correctMonth>9){
                tv_add_date.setText(""+ mYear +"-" + correctMonth + "-0" + mDay)
            else if(mDay>10 && correctMonth<10){
                tv_add_date.setText(""+ mYear +"-0" + correctMonth + "-" + mDay)
            } else if(mDay<10 && correctMonth<10){
                tv_add_date.setText(""+ mYear +"-0" + correctMonth + "-0" + mDay)
            }else{
                tv_add_date.setText(""+ mYear +"-" + correctMonth + "-" + mDay)
            }}, year, month, day)
        dpd.show()

在我改变格式后,新的数据库。 数据基础更新日期格式(DataBaseUpdatedDateFormat

数据库查询。 以下是对我有用的查询

2 个评论
把日期的格式改为YYY-MM-DD,然后就可以很容易地进行比较了。
谢谢你,这很有帮助,但我也不得不为最后的结果改变查询。
android
sql
sqlite
date
Andrei Meriacre
Andrei Meriacre
发布于 2020-11-03
1 个回答
Tobi
Tobi
发布于 2020-11-03
已采纳
0 人赞同

这将无法正常工作,因为你的数据库数据没有正确的格式化。你需要一个01/09/2020的格式,但你有1/9/2020的格式。这意味着你的子串指数不是恒定的。

你能改变你向数据库输入数据的方式吗?然后它就会工作。

你可以尝试使用例子中提供的语法,因为Date()需要的语法是 DATE('2020-10-31')

WHERE date BETWEEN '2020-10-30' AND '2020-10-31'

https://www.techonthenet.com/sqlite/between.php

最终代码。