在datagridview中过滤数据时截断日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在datagridview中过滤数据时截断日期相关的知识,希望对你有一定的参考价值。

我试图过滤DataGridView bounded从DataTable sourceby usingDateTimePicker`

我的问题是列DATETIME有日期和时间,我只想使用没有时间示例的日期

select cast(DATETIME as DATE) from table_name

我试过下面但是我得到错误消息说

表达式包含未定义的函数调用cast()

那我怎么能截断日期呢?

(MyDataGridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("cast(DATETIME as DATE)= '{0}'", DpickerEntryDate.Value.ToShortDateString());

所有事件代码

        if (DpickerEntryDate.Value.Date <= DateTime.Today.Date)
        {
            (MyDataGridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("cast(DATETIME as DATE) = '{0}'", DpickerEntryDate.Value.ToShortDateString());
        }
        else if (DpickerEntryDate.Value.Date > DateTime.Today.Date)
        {
            MessageBox.Show("Can not use future date", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RtlReading);
        }
        else
        {
            //do something
        }

谢谢

答案

不要“截断”日期。让日期作为DateTime流入您的C#代码,然后在表单初始化代码中,通过从DataGridView中获取列来设置列的样式(来自DataGridViewColumnColumns属性的DataGridView并设置DefaultCellStyle

column.DefaultCellStyle.Format = //Some format from DateTime.ToString(string format)

以上是关于在datagridview中过滤数据时截断日期的主要内容,如果未能解决你的问题,请参考以下文章

数据截断:不正确的日期时间值:''

截断尾随零 datagridview 列

c# - 如何过滤包含单词和日期的日期列之间的datagridview?

在 vb net 中显示从 1 个平板电脑到 2 个过滤后的 datagridview 的数据

2个日期和文本之间的日期过滤器

过滤从 `datatable` 界定的 `datagridview` 中的数据