0

更新

我已经在 VS2008 中尝试了这个查询,在服务器资源管理器中尝试了一个新查询。

SELECT        
   keyID, code, CAST(evnt_dt AS datetime2(7)) AS 'datetime2'
FROM            
   tblDT
WHERE        
   (keyID = 474)

并且新列仍然返回为mm/dd/yyyy hh:mm:ss AM/PM.

原始问题:

我正在尝试找到一种方法将毫秒精度分配给在 a 中返回的日期时间列SqlDataAdapterdateValue.ToString("yyyy/mm/dd hh:mm:ss.fff tt")

精度存在于 SQL Server 2008 R2 中的数据库表中。填充 Gridview时SqlDataAdapter,该值将转换为mm/dd/yyyy hh:mm:ss AM/PM,用于显示目的。我希望它以毫秒精度显示如上所述。

da2.SelectCommand = New SqlCommand("SELECT TOP 1000 [keyID], [evnt_dt], [codes_ID] 
WHERE CAST(evnt_dt AS date) = @evntDate)

并在填充数据表后绑定到 Gridview。

da2.Fill(ds2)
dt = ds2.Tables(0)

GridView1.DataSource = dt
GridView1.DataBind()

有没有办法在 SQL 语句或其他技术中做到这一点?

谢谢,

4

1 回答 1

1

使用如图所示的 SQL,您将返回一个日期时间。格式化发生在与 gridview 的绑定中;不要忘记,如果您在 SSMS 或 SE 中运行查询,您会再次看到它被格式化为字符串。在任何一种情况下,您都看不到“真实数据”——很容易认为您看到的是“真实数据”,但当然,它总是以某种方式被格式化,以便将其显示在屏幕上。您可以通过绑定中的格式设置获得您想要的结果,或者在查询中您可以将日期时间值转换为格式为 109 的字符串。

于 2013-10-28T18:28:19.227 回答