如何根据数据表中的出生月份过滤掉生日

时间:2017-04-21 17:14:07

标签: vb.net

我想从名为Patient的数据表中获取人员列表,根据他们的出生月份进行筛选。数据表具有生日列,其中元素具有mm / dd / YYYY的格式。关于如何做到这一点的任何想法? 我目前正在使用绑定源方法。我设法根据其他领域过滤它,我想不出如何做到这一点的方法。谢谢

`Dim bs As New BindingSource 
bs.DataSource = StAnnes.Patient
    If cmbFilter.Text = "Name" Then
        bs.Filter = "Patient LIKE '%" & txtboxFilter.Text & "%'"
    ElseIf cmbFilter.Text = "Sex" Then
        bs.Filter = "Sex LIKE '%" & txtboxFilter.Text & "%'"
    ElseIf cmbFilter.Text = "Month of Birth" Then
        bs.Filter = "'Format('Date of Birth','mmm') LIKE 'Jan'"
    ElseIf cmbFilter.Text = "Address" Then
        bs.Filter = "Address LIKE '%" & txtboxFilter.Text & "%'"
    End If
    dgvPtList.DataSource = bs`

1 个答案:

答案 0 :(得分:0)

Filter表达式没有可用的Format函数 你可以使用可能性能很差的转换来扭转这个问题。

bs.Filter = "SUBSTRING(CONVERT([Date of Birth], 'System.String'), 1,2) = '01'");

这里我们尝试将datetime列转换为字符串,然后我们获取转换后的字符串的前两个字符,并将逻辑比较应用于表示January的值01。当然,这应该根据您的区域设置进行测试。转换生成一个字符串,我不知道它是如何格式化的。我假设前两个字符是月份,但您需要在您的环境中测试它。

不要忘记在方括号内放置一个包含空格的列。

相关问题