Saya punya tabel yang mengumpulkan formulir yang dikirimkan dari situs web kami, tetapi untuk beberapa alasan, ketika mereka membuat tabel, mereka tidak memasukkan stempel waktu di tabel. Saya ingin memasukkan tanggal dan waktu yang tepat ketika catatan dimasukkan.
Saya tahu ada di sana di suatu tempat, tapi sepertinya saya tidak bisa menemukan cara mengatur nilai default (seperti di Access, Anda menggunakan getNow()
atau Now()
) tetapi saya tidak tahu di mana harus meletakkannya.
sql-server
datetime
stephmoreland
sumber
sumber
Jawaban:
Untuk memodifikasi kolom yang ada di tabel yang ada:
sumber
TheQ
's mengasumsikan Anda mengubah kolom yang ada yang saya tidak yakin menjadi masalahnya? Lihat jawaban saya untuk kode untuk menambahkan kolom baru dengan batasan default ini.GETUTCDATE()
sebagai gantiGETDATE()
Ini juga bisa dilakukan melalui GUI SSMS.
(getdate())
dalam Nilai Default atau bidang Binding seperti yang digambarkan di bawah inisumber
dateadd(minute, 10, GetDate())
melihat apakah itu berhasil.Dalam tabel itu di SQL Server, tentukan nilai default kolom yang akan
CURRENT_TIMESTAMP
. Tipe data dari kolom itu mungkin datetime atau datetime2.misalnya
sumber
CURRENT_TIMESTAMP
mengembalikandatetime
nilai di zona waktu lokal komputer. Itu harus dihindari. Alih-alih gunakanSYSUTCDATETIME
yang mengembalikan adatetime2
dalam UTC.Sementara jawaban yang ditandai sudah benar dengan:
Anda harus selalu mengetahui zona waktu saat menambahkan nilai datetime default ke dalam kolom.
Katakan misalnya,
datetime
nilai ini dirancang untuk menunjukkan ketika seorang anggota bergabung dengan sebuah situs web dan Anda ingin itu ditampilkan kembali kepada pengguna,GETDATE()
akan memberi Anda waktu server sehingga dapat menunjukkan perbedaan jika pengguna berada di tempat yang berbeda dengan server.Jika Anda berharap untuk berurusan dengan pengguna internasional, dalam beberapa kasus lebih baik menggunakan GETUTCDATE () , yang:
Saat mengambil nilai, aplikasi / situs web ujung depan harus mengubah nilai ini dari waktu UTC ke lokal / budaya pengguna yang memintanya.
sumber
Larang Null pada kolom dan tetapkan default pada kolom
getdate()
sumber
Sintaks untuk ini ketika membuat tabel baru adalah:
sumber
Ini bekerja untuk saya ...
sumber
Ini juga berfungsi:
Atau:
sumber
Ini berhasil untuk saya. Saya menggunakan Pengembang SQL dengan Oracle DB:
sumber
Agar lebih mudah diikuti, saya akan merangkum jawaban di atas:
Katakanlah tabel ini disebut Pelanggan memiliki 4 kolom / kurang atau lebih ...
Anda ingin menambahkan kolom baru ke tabel di mana setiap kali ketika ada masukkan ... maka kolom itu mencatat kapan peristiwa itu terjadi.
Larutan:
tambahkan kolom baru, katakanlah timepurchase adalah kolom baru, ke tabel dengan tipe data datetime .
Kemudian jalankan perubahan berikut:
sumber
Katakanlah Anda membuat tabel database untuk sistem pendaftaran.
Sekarang beberapa orang mendaftar.
Maka Anda sadar bahwa Anda memerlukan cap waktu untuk saat mereka mendaftar.
Jika aplikasi ini terbatas pada wilayah yang dilokalkan secara geografis, maka Anda dapat menggunakan waktu server lokal bersama
GETDATE()
. Kalau tidak, Anda harus memperhatikan pertimbangan Tanner untuk audiens globalGETUTCDATE()
nilai default.Tambahkan kolom dengan nilai default dalam satu pernyataan seperti jawaban ini .
Mari cari pendaftar lain dan lihat seperti apa data itu.
sumber
Dalam SQLPlus saat membuat tabel itu seperti
SQL> buat Uji tabel
SQL> masukkan ke nilai Test (id) (1);
sumber