2012-04-19 4 views
0

Как преобразовать миллисекунды в SQL-время?Преобразование миллисекунд в SQL datetime

я передаю переменную начать & конец, как это:

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 Я хочу, чтобы преобразовать это начало & конечное значение в DateTime

 <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

Какие СУБД вы используете? (добавьте соответствующий тег) –

+0

Что вы собираетесь сравнить с миллисекундой? 1-1-1970? если да, то вы можете получить datetime, а затем вставить в sql-сервер – Habib

+0

Я имел в виду Unix Epoch – Habib

ответ

0

Использование dateadd functi на, например:

dateadd(ms, start, '19800101') 

где 1980-01-01 будет «нулевой» даты, которые вы используете в вашем методе _aspxDateTimeToMilliseconds.

+0

Спасибо, но я получил сообщение об ошибке: Тип данных nvarchar аргумента недействителен для аргумента 2 функции dateadd – user609511

+0

@ user609511: Can ' t вы указываете, что параметры должны быть номерами? В противном случае вам нужно преобразовать строку в число: 'dateadd (ms, cast (start as bigint), '19800101')' – Guffa

+0

Спасибо ... теперь я получил Ошибка арифметического переполнения при преобразовании выражения в тип данных int. – user609511

Смежные вопросы