DATEDIFF有问题 [英] Problem with DATEDIFF

查看:109
本文介绍了DATEDIFF有问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的剧本:



 CASE 
当Users.ResignationDate不为空时那么
DATEDIFF(年, WorkStartDate,ResignationDate)
ELSE
DATEDIFF(年,WorkStartDate,GETDate())END为AncinitetViaÅr,





它给我这样的结果:2



但我想我的结果看起来像这样:2



有人可以帮助或指出我正确的方向。谢谢。



我的尝试:



 CASE 
WHEN Users.ResignationDate IS NOT NULL那么
DATEDIFF(年,WorkStartDate,ResignationDate)
ELSE
DATEDIFF(年,WorkStartDate,GETDate()END为AncinitetViaÅr)+ '年'





但它不起作用

解决方案

我想你在正确的轨道上,查询只需要一点点推文。主要是



1.将整数返回从DATEDIFF转换为字符串

2.在结尾处追加+'年'字符串每个条件



  CASE  
WHEN Users.ResignationDate IS NOT NULL 那么
CONVERT VARCHAR 3 ),DATEDIFF(YEAR,WorkStartDate,ResignationDate))+ ' 年'
ELSE
CONVERT VARCHAR 3 ),DATEDIFF(YEAR,WorkStartDate,GETDate())) + ' 年'
END as AncinitetViaÅr


尝试谷歌搜索更改,答案就在那里.. sql format datetime to string [ ^

This my script :

CASE
WHEN Users.ResignationDate IS NOT NULL THEN
DATEDIFF(YEAR,WorkStartDate,ResignationDate)
ELSE
DATEDIFF(YEAR,WorkStartDate,GETDate())END as AncinitetViaÅr,



Its give me result like this: 2

But i wanna my result look like this : 2 Years

Can someone please help or point me in the right direction. Thanks.

What I have tried:

CASE
WHEN Users.ResignationDate IS NOT NULL THEN
DATEDIFF(YEAR,WorkStartDate,ResignationDate)
ELSE
DATEDIFF(YEAR,WorkStartDate,GETDate()END as AncinitetViaÅr)+ 'Years'



But its not working

解决方案

I think you're on the right track, the query just need a little tweet. The main thing are

1. Convert the integer return from DATEDIFF to string
2. Append + ' Years' string at the end of each condition

CASE
 WHEN Users.ResignationDate IS NOT NULL THEN
  CONVERT(VARCHAR(3),DATEDIFF(YEAR,WorkStartDate,ResignationDate))+ ' Years'
 ELSE
    CONVERT(VARCHAR(3),DATEDIFF(YEAR,WorkStartDate,GETDate())) + ' Years'  
END as AncinitetViaÅr


Try google search for a change, the answer will be there.. sql format datetime to string[^]


这篇关于DATEDIFF有问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆