เวลาเซิร์ฟเวอร์ Coldfusion เทียบกับเวลาเซิร์ฟเวอร์ฐานข้อมูล SQL (ปัญหา)

ฉันมีปัญหาที่ต้องได้รับการตอบกลับจากผู้ใช้ทางอีเมล SMS แอป ฯลฯ และแต่ละสื่อมีเวลาเซิร์ฟเวอร์ของตัวเอง ฉันประสบปัญหาเมื่อเวลาเหล่านี้ดับลงเพียง 5-10 วินาที

ฉันใช้ฟังก์ชัน #now()# ของ ColFusion อยู่ แต่เพิ่งพบปัญหาเหล่านี้ ฉันต้องการให้แต่ละสภาพแวดล้อมอ้างอิงเวลามาตรฐานเพียงครั้งเดียว ดีที่สุดที่ฉันคิดได้คือฐานข้อมูล SQL เนื่องจากพวกเขาแบ่งปันทรัพยากรนั้นทั้งหมด

ฉันกำลังดำเนินการคำสั่งอัพเดตที่คล้ายกับข้อความต่อไปนี้:

    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()#">

ฉันต้องการแทนที่ #now()# ด้วยฟังก์ชัน getdate() บางประเภท

ความช่วยเหลือใด ๆ เกี่ยวกับเรื่องนี้จะได้รับการชื่นชมอย่างมาก

ขอบคุณมาก!!!!


person Scott    schedule 11.07.2020    source แหล่งที่มา
comment
และอะไรคือสิ่งที่ขัดขวางไม่ให้คุณเปลี่ยนคำค้นหาของคุณ?   -  person SMor    schedule 11.07.2020
comment
และโดยทั่วไป คุณควรหลีกเลี่ยงการใช้ชื่อสามส่วน เนื่องจากจะเป็นการเพิ่มระดับความพยายามเพิ่มเติม หากคุณต้องการสนับสนุนสภาพแวดล้อมที่หลากหลาย ดีกว่ามากที่จะปล่อยให้การเชื่อมต่อกำหนดฐานข้อมูลที่มีวัตถุของคุณอยู่   -  person SMor    schedule 11.07.2020


คำตอบ (2)


SQL Server ให้คุณเลือกวันที่และเวลาปัจจุบัน มีการอธิบายไว้ที่นี่:

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

ฉันชอบ getdate() เสมอเพราะว่ามันพิมพ์ง่ายที่สุด

person Dan Bracuk    schedule 11.07.2020
comment
ฉันคิดว่าการพิมพ์มากขึ้นเป็นการต่อต้านรูปแบบ รหัสที่ไม่มีอยู่คุณจะไม่รักษา ดังนั้น GETDATE() จึงเป็นข้อดีสำหรับฉันอย่างมาก ไม่ต้องพูดถึง ฉันสามารถตั้งโปรแกรมทริกเกอร์และให้ตั้งค่านี้โดยอัตโนมัติ ไม่มี ColdFusion เข้ามาเกี่ยวข้อง - person James A Mohler; 11.07.2020
comment
ColdFusion มีส่วนเกี่ยวข้องกับอีกสองสาขาแล้ว - person Dan Bracuk; 11.07.2020
comment
ขอบคุณสำหรับความคิดเห็น. ฉันซาบซึ้งจริงๆ ฉันจะใส่สิ่งนั้นลงในแบบสอบถามอัปเดตได้อย่างไร มันจะเป็นเพียง #getdate()# หรือไม่ ขอบคุณ - person Scott; 12.07.2020

แทนที่จะส่งพารามิเตอร์แบบสอบถามตามเวลาเซิร์ฟเวอร์ CF เพียงเรียกใช้ฟังก์ชัน 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