CF/SQL将datetime转换为MM/DD/YYYY

Vic*_*cki 1 sql-server coldfusion

我正在使用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>
Run Code Online (Sandbox Code Playgroud)

我尝试了许多与此类似的组合:

<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>
Run Code Online (Sandbox Code Playgroud)

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

Mat*_*che 8

我会运行你的查询,如下所示.不要忘记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>
Run Code Online (Sandbox Code Playgroud)

然后在ColdFusion端执行格式

#dateFormat(processTable.Date_Due, 'mm/dd/yyyy')#
Run Code Online (Sandbox Code Playgroud)

  • @MattBusche从CF 9开始,你可以只使用name ="local.processTable"来保持变量作为函数的局部范围(Var作用域). (2认同)