Время сервера Coldfusion по сравнению с SQL Время сервера базы данных (проблемы) - PullRequest
1 голос
/ 11 июля 2020

У меня проблема, когда мне нужно получать ответы от пользователей по электронной почте, SMS, через приложение и т. Д. c. и каждый носитель имеет собственное время сервера. У меня возникают проблемы, когда это время снижается всего на 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 ().

Мы будем благодарны за любую помощь.

Большое спасибо !!!!

Ответы [ 2 ]

2 голосов
/ 12 июля 2020

Вместо передачи параметра запроса, основанного на времени сервера CF, просто вызовите SQL серверную функцию GetDate ().

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()
2 голосов
/ 11 июля 2020

SQL Сервер дает вам возможность выбрать текущую дату и время. Они описаны здесь:

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

Я всегда предпочитал getdate(), потому что это было легче всего набрать.

...