2012-04-19 10 views
0

ミリ秒をSQL datetimeに変換するにはどうすればよいですか?MillisecondsをSQL datetimeに変換する

私はこのような変数開始&終了転送:私は日時

に、この開始に&終了値を変換したい

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

とFicheAgenda.aspx上:

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; 

出力を

 <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を使用していますか? (適切なタグを付けてください) –

+0

何ミリ秒と比較しますか? 1-1-1970?そうであれば、datetimeを取得してSQLサーバに挿入することができます – Habib

+0

私はUnix Epochを意味しました – Habib

答えて

0

dateadd functi例えば、上:1980-01-01はあなた_aspxDateTimeToMilliseconds方法で使用し、「ゼロ」の日付になり

dateadd(ms, start, '19800101') 

+0

ありがとうございますが、このメッセージエラーがあります:引数のデータ型nvarcharがdateadd関数の引数2に無効です – user609511

+0

@ user609511:パラメータを数値にする必要がありますか?それ以外の場合は、文字列を数値に変換する必要があります。 'dateadd(ms、cast(start as bigint)、 '19800101')' – Guffa

+0

ありがとうございます...今すぐ取得しました式をデータ型intに変換する際に算術オーバーフローエラーが発生しました。 – user609511

関連する問題