小编Sys*_*nce的帖子

SQL Server:确定两个日期之间的年,月,周和天

在阅读了该主题并被建议使用后DateDiff。我编写的函数无法提供我想要的答案。客户现在想要完成检查清单需要多长时间。我有一个CreationDateCompletionDate。我需要知道花了多少年,几个月,几周和几天。如果是2天,则为“ 2天”,没有年份。该功能会扣除年数,然后尝试检查月数,周数和天数。如果可用,则仅给出结果。似乎DateDiff是问题所在...或者我是无法理解的问题DateDiff。它甚至返回一个星期,日期相差4天,这没有任何意义。它应该返回两个日期内的星期数,而不用关心它的开始时间。

这是代码

ALTER FUNCTION [dbo].[DateRangeText]
    (@FromDate DATETIME, @ToDate DATETIME)
RETURNS VARCHAR(MAX)
AS
BEGIN
    DECLARE @Result AS VARCHAR(MAX);
    SET @Result = '';

    DECLARE @TmpS AS VARCHAR(MAX);
    SET @TmpS = '';

    DECLARE @Years AS INT;
    SET @Years = DATEDIFF(year, @FromDate, @ToDate);
    IF (@Years > 0)
    BEGIN
        IF (@Years = 1)
            SET @TmpS = ' Year ';
        ELSE
            SET @TmpS = ' Years ';

        SET @Result = @Result + CAST(@Years AS VARCHAR) …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

2
推荐指数
1
解决办法
104
查看次数

标签 统计

sql ×1

sql-server ×1

t-sql ×1