Функция 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"