Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengeluarkan Bahagian Masa dengan Cekap dari Medan Datetime SQL Server?

Bagaimana untuk Mengeluarkan Bahagian Masa dengan Cekap dari Medan Datetime SQL Server?

DDD
Lepaskan: 2025-01-22 10:57:14
asal
732 orang telah melayarinya

How to Efficiently Remove the Time Portion from a SQL Server Datetime Field?

Mengoptimumkan Pengekstrakan Tarikh daripada Pelayan SQL datetime Medan

Mengekstrak hanya bahagian tarikh daripada medan SQL Server datetime ialah tugas biasa. Dua pendekatan lazim dibandingkan di sini untuk kecekapan:

Kaedah A:

<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>
Salin selepas log masuk
Salin selepas log masuk

Kaedah B:

<code class="language-sql">SELECT CAST(CONVERT(CHAR(11), GETDATE(), 113) AS DATETIME)</code>
Salin selepas log masuk

Tanda Aras Prestasi

Walaupun kedua-dua kaedah secara amnya pantas, Kaedah A secara konsisten menunjukkan prestasi unggul, terutamanya dengan set data yang lebih besar. Ujian pada set data sejuta baris mendedahkan penggunaan CPU yang jauh lebih rendah menggunakan Kaedah A, menyerlahkan kecekapannya.

Faktor Tambahan

Melebihi kelajuan, pertimbangan lain mempengaruhi pemilihan kaedah:

  • Pemformatan Tempatan dan Tarikh: Pergantungan Kaedah B pada CONVERT kepada CHAR memperkenalkan potensi isu dengan format tarikh khusus setempat.
  • Pengendalian Jenis Data: Kaedah B menggunakan FLOAT secara dalaman, yang mungkin mempunyai implikasi storan.
  • Kebolehlanjutan: Kaedah A memberikan fleksibiliti yang lebih besar untuk melanjutkan pengiraan (cth., mencari hari pertama dalam bulan atau hari berikutnya).

SQL Server 2008 dan Kemudian

Untuk SQL Server 2008 dan versi seterusnya, fungsi CAST menawarkan alternatif yang diperkemas:

<code class="language-sql">CAST(GETDATE() AS DATE)</code>
Salin selepas log masuk

Pendekatan ini cekap dan secara langsung mengembalikan DATE jenis data.

Pengoptimuman Indeks

Yang penting, penggunaan fungsi atau operasi CAST dalam klausa WHERE boleh menghalang penggunaan indeks, memberi kesan kepada prestasi pertanyaan. Elakkan amalan sedemikian apabila mungkin untuk mengekalkan kelajuan pertanyaan yang optimum.

Pengesyoran

Memandangkan prestasi dan kebolehsuaian, kaedah yang disyorkan untuk mengalih keluar komponen masa daripada medan datetime dalam SQL Server ialah:

<code class="language-sql">SELECT DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0)</code>
Salin selepas log masuk
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Bahagian Masa dengan Cekap dari Medan Datetime 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan