SQL:儲存C#中DateTime類型Ticks的值

來源:互聯網
上載者:User
DateTime d = Convert.ToDateTime(System.DateTime.Now.ToString("yyyy-MM-dd"));

long longBegin = d.Ticks;
long longEnd = d.AddDays(1).AddMilliseconds(-1).Ticks;

string sql = "SELECT * FROM tb WHERE TricksField BETWEEN @loginBegin AND @lengEnd";
SqlCommand cmd = new SqlCommand();
cmd.Parameters.Add("@loginBegin", DbType.Int64, 64);
cmd.Parameters.Add("@loginEnd", DbType.Int64, 64);
cmd.Parameters[0].Value = longBegin;
cmd.Parameters[1].Value = longEnd;

 

 

尋找今天過生日的. 百萬級的資料表,

可以在c#裡產生兩個參數,以預存程序,或傳參的語句方式執行, 在 TicksField 上建立索引,效率效數量級提升

//***************************************
.NET Framework 類庫  
DateTime.Ticks 屬性  

此屬性的值表示自 0001 年 1 月 1 日午夜 12:00:00 以來已經過的時間的以 100 毫微秒

為間隔的間隔數。

如果確實,要用sql實現,那我們先藉助前端程式得到幾個資料。
C# code        DateTime d = Convert.ToDateTime("1900-1-1");
        DateTime d1 = Convert.ToDateTime("0001-1-1");

        TimeSpan t = d - d1;

        Response.Write("1900-1-1 . ticks:" +d.Ticks +"</br>" );
        Response.Write("0001-1-1 . ticks:" + d1.Ticks + "</br>");
        Response.Write(t.TotalMilliseconds.ToString());

 

 

 

綜合下先建立表結構邏輯模型:
通過使用資料倉儲建模思想建立星型模型:
1事實表
ID 主鍵
CRRQ_ID 日期ID
PLACE_ID 地點ID
XNAME_ID 姓名ID
XX 事實欄位

2日期維表
CRRQ_ID 日期ID
CRRQ 日期

3地點維表
PLACE_ID 地點ID
PLACE 地點

4客戶維表
XNAME_ID 姓名ID
XNAME 姓名

再利用DB2資料庫的物理最佳化方法:
對事實表
 1 資料庫分區
 2 表分區 
 3 建立MDC  
 4 建立 MQT 
 5 對聯合主鍵建立位元影像索引

4億條資料的表在資料倉儲中只能算小表

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.