【问题标题】:CF/SQL converting datetime to MM/DD/YYYYCF/SQL 将日期时间转换为 MM/DD/YYYY
【发布时间】:2015-10-13 17:54:05
【问题描述】:

我正在使用 ColdFusion 和 SQL Server。我正在尝试将Due_Date 转换为 MM/DD/YYYY。

数据库是这样设置的,很遗憾我无法对其进行任何更改。

我正在这样打电话:

<cffunction name="displayTable" access="public" returntype="query">
    <cfquery name="processTable">
        SELECT id, Date_Due, Date_Complete, Item_Count
        FROM dbo.Dealer_Track_Work      
    </cfquery>
    <cfreturn processTable>
</cffunction>

我已经尝试了许多类似的组合:

<cffunction name="displayTable" access="public" returntype="query">
    <cfquery name="processTable">
        SELECT id, LEFT(CONVERT(VARCHAR, Date_Due, 120), Date_Complete, Item_Count
        FROM dbo.Dealer_Track_Work      
    </cfquery>
    <cfreturn processTable>
</cffunction>

谁能发现我可能出错的地方?我在想,因为数据库设置为 datetime 并且正在转换为 varchar 但我仍然无法提出正确的组合。 (并且不允许更改表格)任何帮助我的输出读取 MM/DD/YYYY 将不胜感激。

【问题讨论】:

    标签: sql-server coldfusion


    【解决方案1】:

    我会像下面这样运行您的查询。不要忘记 var 作用域 processTable 变量

    <cffunction name="displayTable" access="public" returntype="query">
      <cfset var processTable = ''>
      <cfquery name="processTable">
        SELECT id, Date_Due, Date_Complete, Item_Count
        FROM dbo.Dealer_Track_Work      
      </cfquery>
      <cfreturn processTable>
    </cffunction>
    

    然后在 ColdFusion 端执行格式化

    #dateFormat(processTable.Date_Due, 'mm/dd/yyyy')#
    

    【讨论】:

    • 你为什么要做这行?
    • 这样可以确保变量对当前函数上下文是私有的,并且在函数之外不可用。
    • @MattBusche 从 CF 9 开始,您只需执行 name="local.processTable" 即可将变量范围保持为函数的本地(Var 范围)。
    【解决方案2】:

    你不应该使用 101 吗?

    <cffunction name="displayTable" access="public" returntype="query">
      <cfquery name="processTable">
        SELECT id, CONVERT(CHAR(10), Date_Due, 101), Date_Complete, Item_Count
        FROM dbo.Dealer_Track_Work      
      </cfquery>
      <cfreturn processTable>
    </cffunction>
    

    【讨论】:

    • (编辑)是的,格式 101 也可以。有关格式的完整列表,请参阅CAST and CONVERT in the BOL。也就是说,通常最好将值尽可能长时间地保留为日期时间对象,以防您需要对对象进行任何日期数学运算。仅在需要时才在 CF 中进行格式化。此外,对于 CF - 不要忘记 var/local 范围查询名称以避免可能的线程问题。
    • 同意。离开DB做数据处理; CF 的工作是进行“最后一英里”输出格式化。
    猜你喜欢
    • 2013-10-19
    • 1970-01-01
    • 1970-01-01
    • 2020-06-22
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多