如何分开 DateTime 方法在 ASP.Net 中的日期和时间

发布时间: 2017/3/26 5:30:22
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我正在写我的 SQL 查询,插入日期和时间,我想要分隔日期和时间的 DateTime 现在的方法。我想要将它们分别存储在我的数据库表。我如何可以分别插入它们,请指导我。

这里是我不正确的查询︰

string CheckRequest = "select count(*) from Requests where Date='"+DateTime.Now.ToString()+"'";

解决方法 1:

在.NET 中的 DateTime 变量在日期和时间部分不 '分'。他们始终包含日期和时间 (因此名称)。你可能需要的是查询数据库使用只有你查询的日期部分。你可以达到你将你 DateTime 变量转换为字符串,与刚刚的 ToString 方法应用于一个 DateTime 变量时使用一种特殊的格式设置图案的日期部分的结果

string CheckRequest = @"select count(*) from Requests 
          where Date='" +DateTime.Now.ToString("yyyy-MM-dd")+"';

但这仍留下的一个公开问题。
传递一个格式化的字符串时需要您必须设置格式,您的数据库所期望的一样。未能准确地表示字符串导致中检索数据表中的记录的失败。

更好的方法让您的数据库引擎找出从 DateTime 变量使用参数化的查询的日期值。

像这种事情

string CheckRequest = @"select count(*) from Requests 
          where Date=@myDate"
using(SqlConnection cn = new SqlConnection(.......))
using(SqlCommand cmd = new SqlCommand(CheckRequest, cn))
{
    cn.Open();
    cmd.Parameters.Add("@myDate", SqlDbType.Date).Value =  DateTime.Now.ToDay;
    object result = cmd.ExecuteScalar();
    if(result != null)
    {
        int count = Convert.ToInt32(result);
        MessageBox.Show("Record found=" + count.ToString());
    }
    else
       MessageBox.Show("No Record found");
 }

在这里我使用的类型参数的 Date 和分配 Now.ToDay (仍然 DateTime 值但与时间等于 12:00:00 AM ) 数据库引擎现在知道只使用日期部分和正确查询表

官方微信
官方QQ群
31647020