DATEDIFF有问题 [英] Problem with DATEDIFF
本文介绍了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屋!
查看全文