2012-04-19 175 views
0

如何將毫秒轉換爲SQL日期時間?將毫秒轉換爲SQL日期時間

我傳遞變量開始&結束這樣的:

var interval = scheduler.GetSelectedInterval(); 
var resourceId = scheduler.GetSelectedResource(); 
var start = _aspxDateTimeToMilliseconds(interval.start); 
var end = _aspxDateTimeToMilliseconds(interval.end); 
window.location.href = 
    "FicheAgenda.aspx?Page=ACTION&Mode=Creation&start=" + 
     start + "&end=" + end +"&resourceId=" + resourceId; 

輸出:

FicheAgenda.aspx?Page=ACTION&Mode=Creation&start=1334579400000&end=1334584800000&resourceId=24 

和FicheAgenda.aspx我想這個開始&終值轉換爲日期時間

 <asp:SqlDataSource ID="SqlDataSource_Activity" runat="server" 
     ConnectionString="<%$ ConnectionStrings:OnyxConnectionString %>" 
     SelectCommand="SELECT DISTINCT [ID_ACTIVITE], [LIBELLE_ACTIVITE] 
         FROM [ESPTEMPS_ACTIVITE] 
         LEFT JOIN ESPTEMPS_PROGRAMMATION 
       ON ESPTEMPS_ACTIVITE.ID_ACTIVITE = ESPTEMPS_PROGRAMMATION.ID_ACTIVITY 
         WHERE DATEADD(MINUTE, 
           CONVERT(int, SUBSTRING(HEURE_DEBUT, 3, 2)), 
           DATEADD(HOUR, 
            CONVERT(int, SUBSTRING(HEURE_DEBUT, 1, 2)), 
            DATE_DEBUT)) 
           < convert(datetime,@StartDate) 
         AND 
           DATEADD(MINUTE, 
           CONVERT(int, SUBSTRING(HEURE_FIN, 3, 2)), 
           DATEADD(HOUR, 
            CONVERT(int, SUBSTRING(HEURE_FIN, 1, 2)), DATE_FIN)) 
           > convert(datetime,@EndDate) "> 
<SelectParameters> 
    <asp:QueryStringParameter Name="StartDate" QueryStringField="start" /> 
    <asp:QueryStringParameter Name="EndDate" QueryStringField="end" /> 
</SelectParameters>    
</asp:SqlDataSource> 
+0

您使用的是什麼RDBMS? (請添加適當的標籤) – 2012-04-19 12:55:05

+0

你將比較毫秒與? 1970年1月1日?如果是的話你可以得到一個日期時間,然後插入到sql server – Habib 2012-04-19 12:55:22

+0

我的意思是Unix時代 – Habib 2012-04-19 12:55:52

回答

0

使用dateadd函數上,例如:

dateadd(ms, start, '19800101') 

其中1980-01-01將是您在_aspxDateTimeToMilliseconds方法使用「零」日期。

+0

謝謝你,但我得到了這個消息錯誤:參數的數據類型nvarchar對dateadd函數的參數2無效 – user609511 2012-04-19 13:03:04

+0

@ user609511:Can'你指定參數應該是數字嗎?否則,你必須將字符串轉換爲數字:'dateadd(ms,cast(以bigint開頭),'19800101')' – Guffa 2012-04-19 13:09:27

+0

謝謝你......現在我得到了將表達式轉換爲數據類型int時發生的算術溢出錯誤。 – user609511 2012-04-19 13:16:52