是否可以对数据库字段进行子字符串化?

Is it possible to substring database fields?

在 vb.net 中,无论我尝试使用什么代码,我的 ultragrid DateTime2 列的格式都不会只显示日期。

所以,我想知道,是否可以使用代码从 datetime2 字段(称为 dateStart)获取数据,然后对其进行子字符串化,将其拆分为 space日期和时间,然后只在 ultragrid 列中显示字符串的日期部分?

用于填充网格的代码(我将在日期问题解决后对其进行参数化)

 Public Sub loadIncidents()

    sql = "1=1"
    If ugClients.Selected.Rows.Count = 1 Then
        sql &= " AND clientName = '" & ugClients.Selected.Rows(0).Cells("Account_Code").Text & "'"
    End If

    sql = "SELECT supportID, clientName, dateStart, incidentProblem, incidentSolved FROM dbo.tblIncidents WHERE " & sql & " ORDER BY [supportID] ASC;"

    Dim cm As New OleDbCommand(sql, _con)
    Dim da As New OleDbDataAdapter(cm)
    Dim dt As New DataTable
    da.Fill(dt)
    ugHistory.DataSource = dt

End Sub

InitializeLayout

的代码
Private Sub ugHistory_InitializeLayout(sender As Object, ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) Handles ugHistory.InitializeLayout

    ugHistory.DisplayLayout.Bands(0).Columns("supportID").Header.Caption = "ID"
    ugHistory.DisplayLayout.Bands(0).Columns("clientName").Header.Caption = "Account Code"
    ugHistory.DisplayLayout.Bands(0).Columns("dateStart").Header.Caption = "Date"
    ugHistory.DisplayLayout.Bands(0).Columns("incidentProblem").Header.Caption = "Problem"
    ugHistory.DisplayLayout.Bands(0).Columns("incidentSolved").Header.Caption = "Solved?"

    With e.Layout.Override
        .CellClickAction = CellClickAction.RowSelect
        .AllowAddNew = AllowAddNew.No
        .AllowDelete = DefaultableBoolean.False
        .AllowUpdate = DefaultableBoolean.False
        .AllowColSizing = AllowColSizing.None
        .RowSelectors = DefaultableBoolean.False
    End With

End Sub

我希望这是有道理的!任何有关如何执行此操作的建议将不胜感激

可能是强制转换或格式

Declare @dateStart DateTime = GetDate()

Select cast(@dateStart as Date)          -- Returns date of 2016-07-26
Select Format(@dateStart,'MM/dd/yyyy')   -- Returns string of 07/26/2016

This answer 是最好的解决方案。使用 SQL 服务器复制列及其内容,删除原始内容,瞧。

请记住,您需要将该列拖回到原来的位置,否则保存记录会出现问题,数据列错误、数据类型不匹配等

您可以使用 UltraGridColumn 的 Format 属性。无需操作您的数据,网格足够智能,可以为您完成此操作。添加 InitializeLayout 例如:

ugHistory.DisplayLayout.Bands(0).Columns("dateStart").Format = "dd/M/yyyy"