ปัญหา บันทึก current Date Time ใน SQLite Android
เหมาะ : คำที่มีความรู้พื้นฐานเรื่อง SQLite บ้างแล้ว แต่ติดปัญหา
ปัญหา (Problem)
หลายๆคนที่ เขียน Apps Android อาจต้องใช้ SQLiteเวลาจะเพิ่มข้อมูล (insert) ก็ทำวิธีแบบปกติที่หาได้ทั่วๆไปเลย
แต่จะมาติดปัญหา ถ้าเราต้องการจะเพิ่มข้อมูลวันเวลาปัจจุบัน (current datetime)
ทำไง???
แก้ปัญหา (Solutions)
• กำหนด Type เป็น TEXT ตอนสร้าง Table
• แก้ปัญหามีได้ 2 วิธี
อันนี้คือส่วนที่ทุกคนจะต้องประกาศก่อนใช้คำสั่งต่างๆใน SQLite นะ
อันนี้คือส่วนที่ทุกคนจะต้องประกาศก่อนใช้คำสั่งต่างๆใน SQLite นะ
dbHelper = new DatabaseHelper(this.context);
database = dbHelper.getWritableDatabase();
1. สร้างคำสั้ง sql ลงไปตรงๆเลย โดยผ่าน Method execSQL(String sql);
database.execSQL("INSERT INTO "+TABLE_NAME+" VALUES (null, datetime())");
Note : เหมาะสำหรับข้อมูลที่ใส่ลงไปเป็น ภาษาอังกฤษทั้งหมด ถ้าเป็นภาษาไทยจะทำให้ error
2. สร้างส่วนรับวันที่ปัจจุบันด้วย JAVA แล้วค่อยส่งค่าเข้าไปในการส่งปกติ
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = new Date();
ContentValues initialValues = new ContentValues();
initialValues.put("date_created", dateFormat.format(date));
long rowId = database .insert(DATABASE_TABLE, null, initialValues);
Note.1 : เหมาะทุกกรณี เพราะเป็นวิธีการที่จะทำให้ตัวแปรอื่นๆที่ส่งรองรับได้ทุกภาษา
Note.2 : สำหรับคนที่ใช้ Date(); ไม่ได้ ตรวจสอบ import ดีๆ ว่าเป็น import function Date() ไหม
แต่ถ้ามี import java.sql.Date; ให้ลบออกแล้วเปลี่ยนเป็น import function Date()
credit : http://stackoverflow.com/questions/754684/how-to-insert-a-sqlite-record-with-a-datetime-set-to-now-in-android-applicatio
ขอบคุณครับผม
ตอบลบ