Waktu Server Coldfusion vs. Waktu Server Database SQL (masalah)

Saya mempunyai masalah ketika saya perlu mendapatkan tanggapan dari pengguna melalui email, SMS, aplikasi, dll. dan setiap media memiliki waktu servernya sendiri. Saya mengalami masalah ketika waktu ini meleset hanya 5-10 detik.

Saya telah menggunakan fungsi #now()# ColFusion, tetapi hanya mengalami masalah ini. Saya ingin setiap lingkungan merujuk hanya pada satu waktu standar. Yang terbaik yang terpikir oleh saya adalah database SQL karena mereka semua berbagi sumber daya itu?

Saya melakukan pernyataan pembaruan yang serupa dengan yang berikut:

    UPDATE
    WENS.dbo.SMS_MESSAGES 
    SET sms_reply = <cfqueryparam cfsqltype="cf_sql_varchar" value="#firstwordmessage#" />
    <cfif LEN(firstwordmessage) neq LEN(msg)>, sms_reply_notes = <cfqueryparam cfsqltype="cf_sql_varchar" value="#msg#" /></cfif>
    , sms_reply_time = <cfqueryparam cfsqltype="cf_sql_timestamp" value="#now()#">

Saya ingin mengganti #now()# dengan semacam fungsi getdate().

Bantuan apa pun dalam hal ini akan sangat dihargai.

Terima kasih banyak!!!!


person Scott    schedule 11.07.2020    source sumber
comment
Dan apa sebenarnya yang menghentikan Anda mengubah kueri Anda?   -  person SMor    schedule 11.07.2020
comment
Dan secara umum, Anda harus menghindari penggunaan tiga nama bagian karena hal itu menambah upaya tambahan jika Anda perlu mendukung banyak lingkungan. Jauh lebih baik membiarkan koneksi menentukan database tempat objek Anda berada.   -  person SMor    schedule 11.07.2020


Jawaban (2)


SQL Server memberi Anda pilihan untuk tanggal dan waktu saat ini. Mereka dijelaskan di sini:

https://docs.microsoft.com/en-us/sql/t-sql/functions/current-timestamp-transact-sql?view=sql-server-ver15

Saya selalu memilih getdate() karena paling mudah untuk mengetik.

person Dan Bracuk    schedule 11.07.2020
comment
Saya menganggap lebih banyak mengetik sebagai anti-pola. Kode yang tidak ada, tidak Anda pelihara. Jadi GETDATE() merupakan nilai tambah bagi saya. Belum lagi, saya dapat memprogram pemicu dan mengaturnya secara otomatis. Tidak ada ColdFusion yang terlibat. - person James A Mohler; 11.07.2020
comment
ColdFusion sudah terlibat untuk dua bidang lainnya. - person Dan Bracuk; 11.07.2020
comment
Terima kasih untuk umpan baliknya. Saya sangat menghargainya. Bagaimana cara memasukkannya ke dalam permintaan pembaruan? Apakah itu hanya #getdate()#? Terima kasih - person Scott; 12.07.2020

Daripada meneruskan parameter kueri berdasarkan waktu server CF, cukup panggil fungsi GetDate() SQL Server.

UPDATE WENS.dbo.SMS_MESSAGES 
SET sms_reply = <cfqueryparam cfsqltype="cf_sql_varchar" value="#firstwordmessage#" />
    <cfif LEN(firstwordmessage) neq LEN(msg)>
        , sms_reply_notes = <cfqueryparam cfsqltype="cf_sql_varchar" value="#msg#" />
    </cfif>
    , sms_reply_time = GetDate()
person Dan Roberts    schedule 12.07.2020