Saya hanya ingin mendapatkan Waktu dari kolom DateTime menggunakan kueri SQL menggunakan SQL Server 2005 dan 2008 Output default:
AttDate
==
2011-02-09 13:09:00
2011-02-09 14:10:00
Saya ingin output ini:
AttDate Time
==
2011-02-09 13:09:00 13:09
2011-02-09 14:10:00 14:10
SELECT CONVERT(VARCHAR(8),GETDATE(),108)
untuk server sqlJawaban:
SQL Server 2008:
Versi sebelumnya:
sumber
Dengan asumsi server Sql
SELECT CONVERT(VARCHAR(8),GETDATE(),108)
sumber
SQL Server 2008+ memiliki tipe data "waktu"
Untuk versi yang lebih lama, tanpa konversi varchar
sumber
0
merupakan tanggal minimum1900-01-01
. Jadi ini mendapatkan jumlah hari (negatif) antara nilai kolom dan 0, kemudian menambahkan hari-hari negatif ke nilai kolom yang "nol" dari bagian tanggal1900-01-01
dan Anda hanya memiliki waktu.Cara paling sederhana untuk mendapatkan waktu dari datetime tanpa tumpukan milidetik adalah:
sumber
Coba gunakan ini
Tanggal ke Waktu
Saatnya TinyTime
sumber
Coba ini:
sumber
Coba ini, ini akan berhasil:
Untuk referensi Anda .
sumber
select AttDate,convert(char(5), AttDate, 108) [Time] from yourTableName
sumber
akan menjadi klausa yang bagus. Sebagai contoh:
sumber
Saya sering menggunakan skrip ini untuk mendapatkan Waktu dari DateTime:
sumber
Untuk mendapatkan waktu dari datetime, kita bisa menggunakan
sumber
Jika Anda ingin berkencan dengan gaya ini: 23 Okt 2013 10:30
Gunakan ini
convert()
Metode mengambil 3 parametersumber
Dapatkan tanggal server
atau
Jika disimpan dalam tabel
Hasil:
sumber
sumber
pada MSSQL2012 atau lebih tinggi
...atau...
sumber
SQL Server 2012:
Secara pribadi, saya lebih suka TRY_CONVERT () daripada CONVERT (). Perbedaan utama: Jika cast gagal, TRY_CONVERT () mengembalikan NULL sementara CONVERT () memunculkan kesalahan.
sumber
select substr(to_char(colUmn_name, 'DD/MM/RRRR HH:MM:SS'),11,19) from table_name;
Output: dari
sumber
'to_char' is not a recognized built-in function name.