sqlite: วิธีเพิ่มเวลาทั้งหมด hh:mm:ss โดยที่ประเภทข้อมูลคอลัมน์คือ DATETIME

COLUMN

นี่คือภาพรวมของคอลัมน์ของฉันใน sqlite db และประเภทข้อมูลในสคีมาถูกกำหนดไว้เป็น DATETIME ตอนนี้ฉันต้องการใช้ฟังก์ชันการรวมบางอย่างเช่น sum() เพื่อคำนวณผลรวมของคอลัมน์นี้

แบบสอบถามที่ฉันใช้คือ:

select sum(total_expend_time) from timetable; แต่ส่งคืนผลลัพธ์ 0.0


person Prateek    schedule 03.01.2013    source แหล่งที่มา
comment
หากคุณกำลังมองหาคำตอบอย่างรวดเร็ว นี่คือสิ่งที่ ในที่สุดก็ช่วยฉันได้ SELECT time(sum(strftime('%s', total_expend_time) - strftime('%s', '00:00:00')), 'unixepoch') FROM timetable   -  person Prateek    schedule 15.01.2013


คำตอบ (2)


SQLite ไม่มีประเภทข้อมูล DATETIME ดั้งเดิม ค่าจะถูกจัดเก็บเป็นสตริง

คุณต้องใช้ฟังก์ชันวันที่ในตัว เพื่อแปลงจากสตริงเหล่านี้เป็นจำนวนวินาทีก่อนจึงจะสามารถเพิ่มได้:

SELECT sum(strftime('%s', total_expend_time) -
           strftime('%s', '00:00:00'       ))
FROM timetable

หากคุณต้องการจัดรูปแบบเป็นเวลา คุณต้องแปลงกลับในภายหลัง:

SELECT time(sum(...), 'unixepoch') FROM timetable
person CL.    schedule 03.01.2013
comment
สิ่งนี้จะส่งคืน SELECT sum(strftime('%s', total_expend_time) - strftime('%s', '00:00:00' )) FROM timetable จำนวนวินาทีอย่างไร ในกรณีของฉันมันส่งคืน 1770 ค่านั้นคืออะไร - person Prateek; 03.01.2013
comment
ใช่ นั่นคือสิ่งที่ฉันเขียน และสิ่งที่เอกสารประกอบสำหรับ %s กล่าว - person CL.; 03.01.2013

มันใช้งานได้สมบูรณ์แบบสำหรับฉัน:

SELECT time(
           sum( strftime('%s', total_expend_time) ),
           'unixepoch'
           )
FROM timetable

ขอบคุณซีแอล!

person Deyan Petkov    schedule 03.02.2021