System.Data.SqlClient.SqlException(DATE_FORMAT)

时间:2013-12-30 05:46:30

标签: c# sql-server asp.net-mvc

我正在使用Sql-Server 2012并有一个查询

string sqlQuery = "SELECT distinct DATE_FORMAT(collectiondate,'%m/%d/%Y') FROM reports  where patientid= " + patientId + " and isdeleted=false order by collectiondate desc";
            var lst = Session.CreateSQLQuery(sqlQuery).List();
            ArrayList rpt = new ArrayList();
            rpt.Add("--ALL--");

但是我收到了错误

System.Data.SqlClient.SqlException: 'DATE_FORMAT' is not a recognized built-in function name.

有人能帮助我吗?

3 个答案:

答案 0 :(得分:2)

您应该尝试使用CONVERT

SELECT CONVERT(VARCHAR(8),GETDATE(),1)

SQL Fiddle DEMO

话虽如此,我建议按原样从数据库返回值,并将格式保留给UI。

答案 1 :(得分:2)

SQL Server中没有DATE_FORMAT函数。

您需要使用CONVERT功能

SELECT distinct SELECT CONVERT(VARCHAR(8), collectiondate, 1) ...

此外,格式化最好在代码中完成,而不是在SQL Server中完成。您应该将日期返回DATEDATETIME列,并在代码中对其进行格式化。

答案 2 :(得分:0)

您可以在SQL Server 2012中使用FORMAT()命令。

DECLARE @d DATETIME = GETDATE();
SELECT  FORMAT(@d, 'mm/dd/yy', 'en-US') AS 'Result';