格式化日期列,然后在MSSQL查询中使用ORDER BY

时间:2016-05-03 16:52:55

标签: sql-server coldfusion

我从数据库中调用“发票日期”字段,稍后在我的ColdFusion I格式中调用该日期,如下所示:

#DateFormat(SESSION.ClientListInvoice.InvoicedDate,"MM/DD/YYYY")#

但是在我在原始查询中使用ORDER DESC / ASC之前,我实际上需要格式化该列。以下是我想要完成的事情:

<CFQUERY NAME="Get_ClientInvoice" DATASOURCE="#this.DSN#">
    SELECT CI.ClientName,CI.InvoicedDate
FROM ClientInvoices
WHERE Blah Blah Blah
ORDER BY FORMAT("mm/dd/yyyy", CI.InvoicedDate) DESC, CI.ClientName ASC
</CFQUERY>

我只是不确定如何在查询中格式化日期。

1 个答案:

答案 0 :(得分:4)

根据您的需要,由于您使用的是SQL Server 2008,因此可以在SELECT语句本身和ORDER BY中添加格式。如果您只想有效地订购它,您只需要ORDER BY部分。但是,如果您还想格式化记录的显示,则需要在SELECT语句本身中包含格式:

SELECT CI.ClientName,CONVERT(VARCHAR,CAST(CI.InvoicedDate AS DATE),101) AS InvoicedDate
FROM ClientInvoices AS CI
WHERE Blah Blah Blah
ORDER BY CAST(CI.InvoicedDate AS DATE) DESC, CI.ClientName ASC

此外,您没有在查询中为您的表名设置别名,因此“CI”。对列进行前导会导致错误。