如何将 SQL 日期转换为 DateTime?

Posted

技术标签:

【中文标题】如何将 SQL 日期转换为 DateTime?【英文标题】:How to convert a SQL date to a DateTime? 【发布时间】:2013-05-14 03:36:42 【问题描述】:

我的 SQL 数据库中有一个 date 类型的列。如何将其转换为 C# DateTime,然后再转换回 SQL date

【问题讨论】:

你是如何检索记录的? 我想使用类似 'Select * from News where add_date 【参考方案1】:

可以将 sql DATE 直接转换为 .net DateTime,反之亦然。

要获取它,请使用SqlDataReader.GetDatetime Method

DateTime myDate = myDataReader.GetDateTime(myColumnIndex);

要设置它,只需将其分配给 SqlParameter 的值并使用 DateTime 的 .Date 属性

【讨论】:

谢谢。当 msdn 说“未执行任何转换;因此,检索到的数据必须已经是 DateTime 对象”时,我感到很困惑。【参考方案2】:

c# 从读者那里获取日期

DateTime date1;
DateTime.TryParse(reader["datecolumn"], out date1);

插入日期

string date1="2013-12-12"; 
DateTime date2;
DateTime.TryParse(reader["datecolumn"],out date2);

SqlCommand cmd= new SqlCommand("Insert into table (dateColumn) Values(@date2)",connection);
cmd.Parameters.AddWithValue("@date2",date2.Date);

TryParse 在成功转换为 false 时返回 true。

VB

从读者那里获取日期

Dim date1 as Date=CType(reader("dateColumn"),Date)

插入日期

 Dim date1 as String="2013-12-12" 'you can get this date from an html input of type date

 Dim cmd As New SqlCommand("Insert into table (dateColumn) Values(@date1)",connection)
 cmd.Parameters.AddWithValue("@date1",CType(date1, Date))

注意:代码是用 VB 编写的。您可以轻松编写与上述代码等效的 c#。函数名称在 VB 和 c# 中保持不变。此外,CType 在 c# 中不可用(尽管它与显式转换变量相同,例如 date1=(DateTime)reader("dateColumn"); 我建议使用 TryParse,它不会在不成功的解析/转换时抛出任何异常。

语法

Date.TryParse(reader("dateColumn"), date1)

【讨论】:

@newStackExchangeInstance 在投票之前你有没有读过我的回答?您甚至知道 VB 和 C# 是什么以及它们之间几乎没有什么区别吗?? @thunderbird Macintosh 苹果不是 Granny Smith 苹果,尽管它们都是苹果。如果您想要一个而得到另一个,您可能会生气或至少感到困惑/惊讶。 @Yuck 我已经给出了如何将其转换为 c# 的说明。除了 VB 和 C# 就像在 java 和 C++ 中编码一样。如果你知道一个,你就会得到另一个。反正我会把它翻译成 c#。 -1:您应该提供 c# 示例。如果你觉得 vb.net 和 c# 如此相似,那你为什么懒得提供一个 c# 的例子呢? @thunderbird 我愿意,我只是认为如果 OP 要求 C#,他应该得到 C#【参考方案3】:
 string mydate= Convert.ToDateTime(reader["dateColumn"]).ToShortDateString().ToString());

这些代码对我有用。试试这些

【讨论】:

以上是关于如何将 SQL 日期转换为 DateTime?的主要内容,如果未能解决你的问题,请参考以下文章

sql中如何将datetime日期转换成int日期

在 SQL 中使用 PHP 为 DATETIME 转换日期

sql server2000如何将数字转换为日期时间

如何使用 SQL 将 Sql Server DateTime 转换为通用时间

sql如何将字符串转为日期

MySQL 脚本将 DateTime.Ticks 值转换为 SQL Date