C# 将DateTime转换为Int

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

这是我在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 (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的示例