Функция Datepart в запросе SQL не работает с подключением OLEDB в VB.NET

Я пытаюсь получить дату, месяц и год отдельно от столбца даты в базе данных Access.

Я использую следующий код для этого.

Я не знаю, в чем проблема с этим, но либо показывает ошибку, либо данные не возвращаются.

Я новичок в OLEDB, поэтому я не знаю, возможно ли это или нет.

Пожалуйста помоги.

И, пожалуйста, покажите мне альтернативы, если этот путь неверен.

    conn_string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\MHV\Documents\Visual Studio 2012\Projects\UTS\UTS.mdb"

    conn = New OleDbConnection(conn_string)
    conn.Open()

    Grid_string = "SELECT datepart(mm,T_Date) from Transactions"

    Grid_cmd = New OleDbCommand(Grid_string, conn)
    RW_AD = New OleDbDataAdapter(Grid_cmd)
    Grid_DS = New DataSet

    Grid_cmd.Connection = conn
    Grid_cmd.CommandText = Grid_string

    RW_AD.Fill(Grid_DS, "Transactions")

    Grid_cmd.ExecuteNonQuery() 

    DataGridView1.DataSource = Grid_DS.Tables("Transactions").DefaultView

PS: связь и прочее работает нормально. Это только показывает мне ошибку, когда я использую datepart().

4 ответа

С помощью ' вместо " исправит проблему:

Grid_string = "SELECT datepart('mm',T_Date) from Transactions"

Можете ли вы попытаться сделать интервал datepart в цитате?

Grid_string = "SELECT datepart(\"mm\",T_Date) from Transactions"

Тип данных возвращается Int16. Приведите к Int16, или вы получите ошибку

Попробуйте использовать m вместо mm

Grid_string = "SELECT datepart('m',T_Date) from Transactions"
Другие вопросы по тегам