0

日時スタンプを使用してSQL時間をミリ秒に変換するにはどうすればよいですか。VB.Netを使用して高値チャートを作成しています

これが私のこれまでの選択コードです

    Dim mydatalist As New List(Of XyData)
    Dim sqlReader As SqlDataReader
    Dim strConn As New     SqlConnection(ConfigurationManager.ConnectionStrings("myCipConnection").ConnectionString)
    Dim strSql As String = "SELECT TOP 1000 DATEDIFF(second,{d '1970-01-  01'},dtmStamp)AS dtmStamp  ,dblReturnTemp  FROM tblCIPEventData  "
    Dim sqlCmd As New SqlCommand(strSql, strConn)
    strConn.Open()
    sqlReader = sqlCmd.ExecuteReader

SQLを選択しています

Dim strSql As String = "SELECT TOP 1 dtmStamp ,dblReturnTemp   FROM tblCIPEventData"

結果は次のようになります

2009-10-22 11:29:31.513

これをミリ秒に変換するにはどうすればよいですか

4

5 に答える 5

3

http://support.microsoft.com/kb/186265

SQL Server の DATEPART() 関数を使用して、Visual Basic アプリケーションに返される SQL Server の日時フィールドのミリ秒を取得できます。

例:

SELECT Pubdate, DATEPART(Ms, Pubdate) FROM Titles
于 2012-04-25T15:19:05.710 に答える
2

DATETIME の形式のタイムスタンプを使用して行った作業では、時刻は考慮していないため、次のようにしました。

CONVERT(BIGINT, DATEDIFF(s, '19700101', left(a.mdate, 11)))*1000

left(a.mdate, 11)= 2012 年 4 月 25 日 (読み取り可能な形式)のようなデータが得られます。

日付 = 2012-04-25 11:01:18.030

これは、必要な JavaScript 時間です。

于 2012-04-25T15:35:41.647 に答える
2

日付のミリ秒を計算するには、まずそれを他の DateTime と比較する必要があります。2 つの DateTime オブジェクトを減算すると、TimeSpan オブジェクトになります。次に、その TimeSpan オブジェクトをミリ秒に変換できます。これはすべて、1 行の単純なコードで実行できます。

Dim milliseconds As Double
milliseconds = (end - start).TotalMilliseconds
于 2012-05-18T17:07:24.170 に答える
1

SQLを実行したい場合は、Robert Harveyの回答を使用できます

VB.NETでそれを行いたい場合、次のものがあります

Dim strSql As String = "SELECT TOP 1 dtmStamp ,dblReturnTemp   FROM tblCIPEventData"

結果はSystem.DateTimeになります

質問に答えるにはどうすればこれをミリ秒に変換できますか? TimeSpanを利用できます

Dim dtmStamp as DateTime
dtmStamp = sqlReader.GetDateTime(0)

Dim ts As New TimeSpan(dtmStamp.Ticks)
Dim milliseconds as Long  
milliseconds = TotalMilliseconds 

これにより、0001/1/1 12:00 AM からのミリ秒数が得られます

エポックを 1970 年 1 月 1 日にしたい場合は、次のようにします。

Dim epoch as DateTime  = new DateTime(1970,1,1)
Dim ts As New TimeSpan((dtmStamp - epoch).Ticks)
于 2012-04-25T15:56:40.527 に答える