sql - 一段时间的时间公式
问题描述
这是我的公式:
(DATEDIFF('CUSTTRANS-SGCUSTDEBTSETTLEMENT'[TRANSDATE];TODAY();DAY))
现在我想有一个公式可以显示一段时间内的时差,比如 1 岁或 1.5 岁。
解决方案
您可以创建一个函数来重用它。这涵盖了所有可能的单位
CREATE FUNCTION ConvertTimeToPeriodFormat
(
@FROM_DATE DATETIME,
@TO_DATE DATETIME
)
RETURNS
VARCHAR(100)
AS
BEGIN
DECLARE @Date
AS
VARCHAR(100)
SELECT @Date = CASE WHEN DATEDIFF(mi, @FROM_DATE, @TO_DATE) <= 1
THEN'1 min old'
WHEN DATEDIFF(mi, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(mi, @FROM_DATE, @TO_DATE) <= 60 THEN
CONVERT(VARCHAR, DATEDIFF(mi, @FROM_DATE, @TO_DATE)) + ' mins old'WHEN DATEDIFF(hh, @FROM_DATE, @TO_DATE) <= 1 THEN
CONVERT(VARCHAR, DATEDIFF(hh, @FROM_DATE, @TO_DATE)) + ' hour old'WHEN DATEDIFF(hh, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(hh, @FROM_DATE, @TO_DATE) <= 24 THEN
CONVERT(VARCHAR, DATEDIFF(hh, @FROM_DATE, @TO_DATE)) + ' hrs old'WHEN DATEDIFF(dd, @FROM_DATE, @TO_DATE) <= 1 THEN
CONVERT(VARCHAR, DATEDIFF(dd, @FROM_DATE, @TO_DATE)) + ' day old'WHEN DATEDIFF(dd, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(dd, @FROM_DATE, @TO_DATE) <= 7 THEN
CONVERT(VARCHAR, DATEDIFF(dd, @FROM_DATE, @TO_DATE)) + ' days old'WHEN DATEDIFF(ww, @FROM_DATE, @TO_DATE) <= 1 THEN
CONVERT(VARCHAR, DATEDIFF(ww, @FROM_DATE, @TO_DATE)) + ' week old'WHEN DATEDIFF(ww, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(ww, @FROM_DATE, @TO_DATE) <= 4 THEN
CONVERT(VARCHAR, DATEDIFF(ww, @FROM_DATE, @TO_DATE)) + ' weeks old'WHEN DATEDIFF(mm, @FROM_DATE, @TO_DATE) <= 1 THEN
CONVERT(VARCHAR, DATEDIFF(mm, @FROM_DATE, @TO_DATE)) + ' month old'WHEN DATEDIFF(mm, @FROM_DATE, @TO_DATE) > 1 AND DATEDIFF(mm, @FROM_DATE, @TO_DATE) <= 12 THEN
CONVERT(VARCHAR, DATEDIFF(mm, @FROM_DATE, @TO_DATE)) + ' months old'WHEN DATEDIFF(yy, @FROM_DATE, @TO_DATE) <= 1 THEN
CONVERT(VARCHAR, DATEDIFF(yy, @FROM_DATE, @TO_DATE)) + ' year old'WHEN DATEDIFF(yy, @FROM_DATE, @TO_DATE) > 1 THEN
CONVERT(VARCHAR, DATEDIFF(yy, @FROM_DATE, @TO_DATE)) + ' years old'END
RETURN @Date
END
你可以用它作为
select dbo.ConvertTimeToPeriodFormat('YourDateHere',GETDATE()) [Date]
推荐阅读
- excel - 在一页上打印长电子表格(Excel 到 PDF)
- java - 如何创建具有特定名称的文件
- excel - 无法单击指向 https://www.asic.gov.au 的超链接
- regex - 尝试加载字体时,AWS Amplify 返回错误 403
- jenkins - Jenkins中JiraTestResultReporter插件配置的404问题
- java - 无法在 Android Studio 中导入 java.lang.instrument
- python - 使用基于类的视图将额外的上下文变量数据传递到 allauth 视图
- reactjs - 能够在本地机器上运行 POST 和 GET,但不能在部署到 heroku 时
- html - 如何使用@print css3 打印内容或页码?
- python - 使用 BeautifulSoup 提取图像链接