VB.Net - Как заставить GridView показывать только столбец Date from DateTime SQL? - PullRequest
0 голосов
/ 23 апреля 2019

У меня есть формула SQL, которую я планирую использовать в будущей веб-программе, разработанной в VB.NET, которая будет отображать данные, полученные из моей формулы SQL, в GridView.

Есть определенная часть моего SQL, у меня проблемы с

select A.[Inv No], A.[Project No], 
cast([Record Date] as date)as [Date],   --This area is problem field
A.[Description], A.[Problem + Repair Details], 
A.[Status], convert(float, A.[Accumulative Stroke]) 
as [Accumulative Stroke],
convert(float, A.[Preventive Stroke]) 
as [Preventive Stroke], 
A.[PIC], A.[Measurement (OK/NG)] 
from [SQL].[dbo].[MAINT_ENTRY] A 

left join (select [Inv No], max(Date +' '+ Time) as [Record Date] 
from [SQL].[dbo].[MAINT_ENTRY] 
group by [Inv No]) B 

on A.[Inv No] = B.[Inv No]

where [Record Date] = Date +' '+ Time and 
[Problem + Repair Details] <> '""' 
Order by A.[Status], A.[Inv No], A.[Date]desc

[Record Date] - это столбец, который объединяет столбцы Date и Time в один объединенный столбец, чтобы я мог получить самые последние данные для отображения в моей программе. Оба эти поля должны быть в формате datetime, чтобы они могли присоединиться.

Я хочу, чтобы GridView отображал только дату в Record Date, и, поскольку она находится в datetime, я попытался использовать CAST для изменения формата на date.

Несмотря на то, что он показывает правильный результат в SQL Management Studio, где я имитировал результаты, он, похоже, не хочет играть хорошо в VB.Net, поскольку в результате, который я получаю, все еще используется формат datetime. Удаляет данные времени, но сохраняет форматирование времени.

22/4/2019 08:45:00 AM ---> 22/4/2019 12:00:00 AM

в чем проблема, вызывающая это?

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

Если я понимаю ваш вопрос, вы возвращаете объект с какого-либо SQL-сервера с полем DateTime. Вы хотите использовать VB для отображения только компонента даты.

В VB есть свойство «Date» для объекта DateTime, которое вы можете использовать, чтобы ПРОСТО отображать компонент date свойства DateTime. Простой пример кода:

Dim myDateTime as DateTime = now()
MessageBox.Show("Today's date is: " + myDateTime.Date)

Если вам нужно больше ссылок, взгляните на https://docs.microsoft.com/en-us/dotnet/api/system.datetime.date?view=netframework-4.8

0 голосов
/ 23 апреля 2019

Вы пытаетесь привести Datetime непосредственно в запросе SQL, чтобы сделать это вместо

cast([Record Date] as date)as [Date]

вы должны сделать это так:

CONVERT(varchar(10), [Record Date], 103) as [Date]

Поскольку синтаксис CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) указывает: Ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...