C# 将DateTime转换为Int
这是我在SQLServer中所做的示例C# 将DateTime转换为Int,c#,sql,sql-server,datetime,int,C#,Sql,Sql Server,Datetime,Int,这是我在SQLServer中所做的示例 SELECT CAST(CAST('2012-01-25 10:00:00.000' AS DATETIME) AS INT) + 2 结果是40933 如何使用c#实现这一点?这个整数是从哪里来的,又是如何来的 参考:但这正是我在c#中需要的,我不明白为什么需要在c#中将DateTime表示为整数,但您可以使用以下方法: public static int DateTimeToInt(DateTime theDate) { return (in
SELECT CAST(CAST('2012-01-25 10:00:00.000' AS DATETIME) AS INT) + 2
结果是40933
如何使用c#实现这一点?这个整数是从哪里来的,又是如何来的
参考:但这正是我在c#中需要的,我不明白为什么需要在c#中将
DateTime
表示为整数,但您可以使用以下方法:
public static int DateTimeToInt(DateTime theDate)
{
return (int)(theDate.Date - new DateTime(1900, 1, 1)).TotalDays + 2;
}
您可以使用此方法进行反向操作:
public static DateTime IntToDateTime(int intDate)
{
return new DateTime(1900, 1, 1).AddDays(intDate - 2);
}
将日期时间转换为时间戳的扩展
public static int DateTimeToInt(this DateTime theDate)
{
int unixTime = (int)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds;
return unixTime;
}
最好将dateTime强制转换为long,使用属性
dateTime.Ticks
进行此操作为什么要在C#中执行此操作?因为我正在开发使用服务的应用程序,我不能使用sql过程,所以非常感谢,我需要它,因为数据库中有一个字段将dateTime表示为这个整数,我想这是为了优化。。。。我正在开发WindowStore应用程序,它是现有应用程序的扩展…唯一的通信方式是虽然DB是服务,但我需要在我的PCL中执行所有操作s@Arun:-不应该将日期存储为字符串或整数-那样做只会自找麻烦。使用DATE
或DATETIME
数据类型@克劳斯,你能告诉我为什么这个+/-2是为了?@marc_s-有日期时间字段,但是,这个整数值有单独的字段来优化查询…无论如何,我无法访问数据库,因为我在另一端…谢谢关心:)@Rezoan+/-2取自OP的示例