กำลังลบออกจากตาราง android sqlite

ฉันมีคอลัมน์ในตารางฐานข้อมูล android sqlite ค่าในคอลัมน์มีลักษณะดังนี้:

2011/06/01
2011/06/02
2011/06/05
2011/06/10
2011/06/11
2011/06/13
2011/06/15
2011/06/16
2011/06/25
2011/06/26

ฉันมีสตริง today="2011/06/27"

ตอนนี้ฉันต้องการลบแถวที่มีค่าคอลัมน์เก่ากว่า 5 วันนับจากวันนี้

จะแก้ไขโค้ดเพื่อให้บรรลุเป้าหมายนี้ได้อย่างไร?

return db.delete(DATABASE_TABLE,where date="", null) > 0;

person Rasel    schedule 28.06.2011    source แหล่งที่มา
comment
ใช้คอลัมน์วันที่ใน SQL ของคุณไม่ใช่ String   -  person Blundell    schedule 28.06.2011
comment
@Blundell นั่นควรเป็นคำตอบ ไม่ใช่ความคิดเห็น :)   -  person denis.solonenko    schedule 28.06.2011


คำตอบ (3)


คุณต้องจัดเก็บวันที่ของคุณในรูปแบบอื่น ตรวจสอบ ฟังก์ชันวันที่ของ SQLite ใช้ YYYY-MM-DD แทน YYYY/MM/DD คุณได้รับคำสั่งซื้อตามวันที่ที่กำหนดโดยการแสดงสตริงแล้ว ดังนั้นคุณสามารถใช้ฟังก์ชันวันที่ของ SQLite เพื่อเลือกแถวที่ถูกต้องได้

วันที่เก่ากว่า 5 วันจะถูกสอบถามเช่นนี้

... WHERE datecolumn < date('now', '-5 days') ...
person Flo    schedule 28.06.2011
comment
คอลัมน์วันที่ของฉันไม่ถือเป็นวันที่ - person Rasel; 28.06.2011
comment
เพิ่มคำสั่งสร้างตารางของคุณเพื่อให้เราเห็นว่าใครเป็นผู้สร้างตารางของคุณ - person Flo; 28.06.2011
comment
สตริงสุดท้ายคงที่ส่วนตัว USAGE_TABLE = สร้างตาราง batteryUsage (จำนวนเต็ม id การเพิ่มคีย์หลักอัตโนมัติ, + วันที่วันที่ไม่เป็นโมฆะ, ข้อความเวลาไม่เป็นโมฆะ, จำนวนเต็มระดับ); - person Rasel; 28.06.2011

ไม่มีประเภทวันที่ใน sqllite

คุณเพียงแค่จัดเก็บข้อมูลที่แสดงค่าเป็นสตริงหรือ int

จากนั้นใช้ฟังก์ชันตามวันที่ของ sqllite เพื่อรับค่า

person Tiger    schedule 15.07.2011

คุณควรใช้ขั้นตอนการจัดเก็บแทนที่จะเขียนบริการ จะทำให้แอปพลิเคชันของคุณอัปเดตบันทึกโดยอัตโนมัติได้ง่ายขึ้น

ดูลิงก์: http://searchoracle.techtarget.com/answer/Time-based-stored-procedure-to-check-table-and-update-old-records

อีกวิธีหนึ่งคือใช้วันที่แทนสตริง เมื่อคุณเรียกใช้บริการ ให้ดึงข้อมูลเป็นวันที่ จากนั้นคุณสามารถทำการเปรียบเทียบง่ายๆ ได้

person Paras Mendiratta    schedule 28.06.2011
comment
SQLite ไม่มีขั้นตอนการจัดเก็บ - person Flo; 28.06.2011
comment
อย่างไรก็ตาม ฉันตรวจสอบเพิ่มเติมว่า SQLite ไม่มีขั้นตอนการจัดเก็บตามเวลา - person Paras Mendiratta; 28.06.2011