亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQL Server 如何找出兩列之間的差異?

SQL Server 如何找出兩列之間的差異?

C#
慕斯709654 2022-12-24 09:59:30
我想找出 SQL Server 中兩個列之間的區別,它們是僅使用 C# 代碼和無 LINQ 的 DataTime 類型。public class PrintTheQ{    public DateTime LastStatusUpdate { get; set; }    public DateTime AddedToQueue { get; set; }}public static PrintTheQ TestQ (){        PrintTheQ TheQ = new PrintTheQ();        string CS = "data source =(local); database = Sample1; Integrated Security=SSPI";        using (SqlConnection connection = new SqlConnection(CS))        {            connection.Open();            SqlCommand command = new SqlCommand("select *from TelecomTable WHERE AddedToQueue  >= DATEADD (day, -2, GetDate()) ", connection);            using (SqlDataReader reader = command.ExecuteReader())            {                TheQ.AddedToQueue = Convert.ToDateTime((reader, "AddedToQueue"));                TheQ.LastStatusUpdate = Convert.ToDateTime((reader, "LastStatusUpdate"));            }        }        return TheQ;}
查看完整描述

2 回答

?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

按照您的要求不在數據庫級別處理此任務并且不使用 linq,那么您需要的只是向您的類添加一個屬性,并且每次您需要讀取它時都會計算此屬性(如果您想更改它,則只獲取,然后改變操作數)


只需向您的班級添加一個只讀屬性


public class PrintTheQ

{

    public DateTime LastStatusUpdate { get; set; }

    public DateTime AddedToQueue { get; set; }

    public int DayDiff

    {

        get {return (int)(LastStatusUpdate - AddedToQueue).TotalDays;}

    }

}

此示例計算天數差異,但當然,從最低日期減去最高日期創建的TimeSpan 結構也可以為您提供 TotalHours、TotalMinutes、TotalSeconds、TotalMilliseconds 甚至 Ticks 方面的差異


這可能是做這件事最合乎邏輯的方法。沒有 foreach 對當前代碼的影響最小,沒有要更改的數據庫代碼,沒有更改您的實際加載代碼。此外,如果您更改 LastStatusUpdate 的值,則 DayDiff 屬性將在您下次閱讀時自動重新計算。


查看完整回答
反對 回復 2022-12-24
?
德瑪西亞99

TA貢獻1770條經驗 獲得超3個贊

嘗試 : SELECT DATEDIFF(year, @startdate, @enddate)

year 表示您要返回的度量周期,可以是月或日


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關注
  • 78 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號