format在SqlServer2008不支持解决办法

一、问题描述

项目部署到服务器上运行,sql报错format不支持。

二、问题查询

在开发时使用数据库为2012版本,项目部署的服务器使用2008版本。经网上查询2012版本才开始支持的format函数,2008只能使用CONVERT函数来解决。

三、解决思路

在项目sql中使用format(日期,"MM-dd“)将时间格式化成 月-日 的形式,在2008版本中修改为SUBSTRING(CONVERT(VARCHAR(20),日期,23),6,5),其中CONVERT(VARCHAR(20),日期,23)表示将日期格式化为编号23的样式,23样式为 yyyy-mm-dd ,其它编号可参考官方给出的文档(传送门)。
然后使用SUBSTRING函数,截取所需要的 mm-dd部分。

参考sql:

select
 SUBSTRING(CONVERT(VARCHAR(20),login_time,23),6,5) login_time
from sys_logininfor 
where login_time>dateadd(day, -30, GETDATE()) 
GROUP BY SUBSTRING(CONVERT(VARCHAR(20),login_time,23),6,5)  
order by SUBSTRING(CONVERT(VARCHAR(20),login_time,23),6,5) 

你可能感兴趣的:(踩坑笔记,数据库)