2012-04-19 106 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