【问题标题】:Coldfusion Server Time vs. SQL Database Server time (problems)Coldfusion 服务器时间与 SQL 数据库服务器时间(问题)
【发布时间】:2020-07-11 17:36:32
【问题描述】:

我有一个问题,我需要通过电子邮件、SMS、应用程序等获得用户的回复,并且每种媒体都有自己的服务器时间。当这些时间仅相差 5-10 秒时,我就会遇到问题。

我一直在使用 ColFusion 的 #now()# 函数,但只是遇到了这些问题。我希望每个环境只引用一个标准化时间。我能想到的最好的是 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()#">

我想用某种 getdate() 函数替换 #now()#。

对此的任何帮助将不胜感激。

非常感谢!!!!

【问题讨论】:

  • 究竟是什么阻止了您更改查询?
  • 一般来说,您应该避免使用三个部分名称,因为如果您需要支持多个环境,这会增加额外的工作量。让连接确定对象所在的数据库要好得多。

标签: sql sql-server datetime coldfusion


【解决方案1】:

SQL Server 为您提供当前日期和时间的选择。它们在此处进行了描述:

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

我一直更喜欢getdate(),因为它最容易输入。

【讨论】:

  • 我认为更多的打字是一种反模式。不存在的代码,你不用维护。所以GETDATE() 对我来说是一个加分项。更不用说,我可以对触发器进行编程并自动设置。不涉及 ColdFusion。
  • ColdFusion 已经参与了其他两个领域。
  • 感谢您的反馈。我真的很感激。我如何将它放在更新查询中?会不会只是#getdate()#?谢谢
【解决方案2】:

无需根据 CF 服务器时间传递查询参数,只需调用 SQL Server 的 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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 2011-08-14
    • 2011-10-24
    • 1970-01-01
    相关资源
    最近更新 更多