Rumah  >  Artikel  >  pangkalan data  >  Mengapa saya hanya mendapat data dari lima hari yang lalu apabila pertanyaan saya secara khusus meminta tujuh yang terakhir?

Mengapa saya hanya mendapat data dari lima hari yang lalu apabila pertanyaan saya secara khusus meminta tujuh yang terakhir?

DDD
DDDasal
2024-10-29 06:38:02215semak imbas

Why am I only getting data from the last five days when my query specifically asks for the last seven?

Mendapatkan Kecekapan Data 7 Hari Terakhir

Apabila memindahkan data daripada SQL Server ke MySQL, adalah penting untuk menapis data yang berkaitan sahaja. Dalam kes ini, mengekstrak data tujuh hari terakhir adalah penting. Walau bagaimanapun, pertanyaan SQL yang diberikan membuahkan hasil yang tidak dijangka.

Isu: Data Hilang

Pertanyaan, yang menggunakan GETDATE()-7 DAN GETDATE() untuk menapis data, diambil hanya bernilai lima hari hasil. Percanggahan ini memerlukan penerokaan.

Penyelesaian: Pengiraan Tarikh Betul

Untuk SQL Server, GETDATE() mengembalikan tarikh dan masa semasa. Walau bagaimanapun, pengiraan tujuh hari yang lalu memerlukan pelarasan untuk mengambil kira zon waktu dan masa penjimatan siang. Untuk menyelesaikan masalah ini, DATEADD(hari,-7, GETDATE()) digunakan. DATEADD() menambah bilangan hari yang ditentukan (dalam kes ini, -7) pada tarikh semasa, memastikan pengambilan data yang tepat sehingga tujuh hari lengkap terakhir.

Oleh itu, pertanyaan yang diperbetulkan hendaklah:

<code class="sql">SELECT id, NewsHeadline as news_headline, NewsText as news_text, state CreatedDate as created_on
FROM News
WHERE CreatedDate >= DATEADD(day,-7, GETDATE())</code>

Pertanyaan yang diubah suai ini akan menangkap data bernilai tujuh hari yang dikehendaki dengan berkesan dan menyelesaikan percanggahan yang dialami sebelum ini.

Atas ialah kandungan terperinci Mengapa saya hanya mendapat data dari lima hari yang lalu apabila pertanyaan saya secara khusus meminta tujuh yang terakhir?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn