一、问题描述
项目部署到服务器上运行,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)