2012-04-25 4 views
0

datetime 스탬프를 사용하여 SQL 시간을 밀리 초로 변환하는 방법은 무엇입니까? 나는 VB.NetSQL 시간 스탬프 (밀리 초)

를 사용하여 highstock 차트를하고있는 중이 야이 지금까지 내가

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

결과는처럼 보이는 SQL 선택을해야

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 

내 선택 코드

2009-10-22 11:29:31.513 

어떻게 밀리 초

+1

SQL 선택 "은 질문과 관련이 있습니까? –

+0

어떤 DBMS를 사용하고 있습니까? PostgreSQL? 신탁? DB2? –

답변

2

날짜의 밀리 초를 알아 내려면 먼저 다른 DateTime과 비교해야합니다. 두 개의 DateTime 객체를 차감하면 TimeSpan 객체가 생깁니다. 그런 다음 TimeSpan 개체를 밀리 초로 변환 할 수 있습니다.이것은 모든 코드의 간단한 라인으로 수행 할 수 있습니다

Dim milliseconds As Double 
milliseconds = (end - start).TotalMilliseconds 
3

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

당신은 SQL Server 날짜 필드의 은 Visual Basic의 반환 밀리 초를 얻기 위해 SQL 서버 DATEPART() 함수를 사용하여이 변환 할 수 있습니다 신청.

예 : 우리는 DATETIME의 형태였다 타임 스탬프를 사용하여 않았다

작업을위한
SELECT Pubdate, DATEPART(Ms, Pubdate) FROM Titles 
+0

그것은 나에게 왜 0을 나는 모른다. –

2

우리는 우리가 하루의 시간과 관련되지 않았기 때문에 다음 한 :

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

left(a.mdate, 11)은 = Apr 25 2012와 같은 데이터를 제공합니다 (읽을 수있는 형식)

a.mdate = 2012-04-25 11 : 01 : 18.030

이것은 자바 스크립트가 필요한 시간입니다.

1

당신은 당신이 당신 VB.NET에서 단지 use Robert Harvey's answer

을 할 수있는 SQL 경우 싶지하고

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

을 다음과 같은 경우 결과는 System.DateTime

될 것입니다 질문 : 에 대답하려면 어떻게해야합니까? 이것을 밀리 초로 변환 할 수 있습니까? 당신은 시대가 바로 1970년 1월 1일에게 당신이 될하려는 경우 우리가 TimeSpan

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

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

를 사용할 수있다이 1/1/0001 오전 12시

때문에 당신에게 (밀리 초)을 줄 것이다 do

Dim epoch as DateTime = new DateTime(1970,1,1) 
Dim ts As New TimeSpan((dtmStamp - epoch).Ticks) 
0

이 한 나를 위해 일 :

me.labelDisplay.Text = CDate(query.dateColumn).ToString("yyyy-MM-dd HH:mm:ss.fff") 

출력 : 당신이 밀리 초를 얻고 싶은 경우

2017-03-23 16:35:08.237 

부분 사용 :

Dim ms as Integer = CDate(query.dateColumn).Milliseconds()