Memperibadikan format paparan tarikh dan masa dalam SQL Server adalah penting untuk mempersembahkan data dengan cara yang mesra pengguna. Artikel ini akan memberikan penyelesaian yang komprehensif kepada cabaran memformat tarikh dan masa dalam format tertentu, seperti yang digariskan dalam soalan asal.
Pernyataan Masalah:
Tugas di tangan melibatkan mengekstrak dua lajur tambahan daripada medan Datetime jadual sedia ada. Lajur ini hendaklah diformatkan seperti berikut:
Penyelesaian Menggunakan Fungsi:
Daripada menggunakan prosedur tersimpan, adalah disyorkan untuk menggunakan fungsi untuk membalut logik untuk pemformatan tarikh ini. Berikut ialah kodnya:
CREATE FUNCTION [dbo].[CustomDateFormat]( @DateTime DATETIME ) RETURNS VARCHAR(10) AS BEGIN DECLARE @Day VARCHAR(2) = SUBSTRING(DATENAME(DAY, @DateTime), 1, 2) DECLARE @Month VARCHAR(3) = SUBSTRING(UPPER(DATENAME(MONTH, @DateTime)), 1, 3) RETURN @Day + @Month END
Fungsi ini mengekstrak bahagian hari ('DD') dan bulan ('MMM') bagi nilai Datetime input dan mengembalikannya digabungkan.
Mengakses Data dalam SQL Dinamik:
Untuk mengakses data menggunakan fungsi, buat SQL dinamik pertanyaan:
DECLARE @SQLCommand VARCHAR(MAX) = ' SELECT ..., dbo.CustomDateFormat(DateTimeField) AS DDMMM, ... ' EXEC (@SQLCommand)
Petua Pengoptimuman:
Untuk mengelakkan penalti prestasi daripada penukaran jenis data, elakkan menggunakan operasi aksara/rentetan pada tarikh apabila boleh. Tarikh dalam MSSQL diwakili sebagai nombor titik terapung dan penukaran kepada/daripada rentetan boleh melambatkan prestasi.
Sumber Tambahan:
Untuk rujukan lanjut, berikut ialah beberapa fungsi pembantu tambahan untuk bekerja dengan tarikh dan masa dalam SQL Server:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memformat Tersuai Tarikh dan Masa dalam Pelayan SQL untuk Memaparkan DDMMM dan HHMMT?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!