Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Mengeluarkan Bahagian Tarikh dengan Cekap daripada Nilai DateTime dalam SQL Server?

Bagaimanakah Saya Boleh Mengeluarkan Bahagian Tarikh dengan Cekap daripada Nilai DateTime dalam SQL Server?

Susan Sarandon
Lepaskan: 2025-01-13 07:55:42
asal
979 orang telah melayarinya

How Can I Efficiently Extract the Date Part from a DateTime Value in SQL Server?

Ekstrak tarikh daripada nilai masa tarikh SQL Server

Kebanyakan aplikasi SQL mengendalikan data yang mengandungi komponen tarikh dan masa. Walau bagaimanapun, dalam beberapa kes kami hanya perlu mengekstrak bahagian tarikh dan membuang maklumat masa. Ini boleh dicapai dengan berkesan melalui pelbagai teknik dalam SQL Server.

Kaedah yang paling berkesan

Walaupun beberapa kaedah wujud, cara paling berkesan untuk mengekstrak tarikh daripada datetime dalam SQL Server ialah menggunakan gabungan fungsi DATEADD() dan fungsi DATEDIFF(). Kaedah ini termasuk langkah-langkah berikut:

  1. Gunakan DATEDIFF(DAY, 0, ) untuk mengira bilangan hari antara 0 dan tarikh yang diberikan. Langkah ini secara berkesan mengira offset harian dari zaman (1 Januari 1900).
  2. Gunakan DATEADD() pada medan DAY dan gunakan hasil langkah 1 untuk mendapatkan tarikh tarikh baharu dengan set semula komponen masanya kepada 00:00:00.

Contohnya:

<code class="language-sql">SELECT DATEADD(DAY, DATEDIFF(DAY, 0, '2008-09-25 12:34:56'), 0)</code>
Salin selepas log masuk

Berbanding dengan pilihan lain seperti menukar menggunakan CAST(FLOOR(CAST(... AS FLOAT)) AS DATETIME) atau CONVERT(DATETIME, CONVERT(VARCHAR(10), ..., 120), 120) , ini kaedah telah terbukti sebagai kaedah terpantas dan paling berkesan.

Tanda Aras

Ujian prestasi pada set data yang mengandungi lebih 130 juta baris rekod dengan cap masa tepat hingga milisaat menunjukkan keputusan berikut:

方法 CPU时间(ms)
纯SELECT 422
Floor-Cast 625
字符串转换 1953
DateAdd 531

Perlu diingat bahawa prestasi mungkin berbeza-beza bergantung pada saiz, pengedaran dan faktor lain data anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Bahagian Tarikh dengan Cekap daripada Nilai DateTime dalam SQL Server?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan