从sql中删除时间

问题描述 投票:0回答:9

请任何人建议我如何从 sql 日期中删除时间部分。我已经阅读了 100 多篇文章,其中大多数删除了时间,但留下了 00:00:00 ,我不想要它,我也知道我可以通过转换为 varchar 来删除这些零,但不幸的是我无法更改类型日期列的它必须是日期类型而不是字符串

请指教

谢谢

sql sql-server-2005
9个回答
4
投票

数据库中的日期时间列将“始终”包含日期部分和时间部分。 SQL Server 2008 引入了仅存储日期或仅存储时间的类型。但是,只要该列的类型为日期时间,您就必须接受时间部分的存在,并且您可以在应用程序中忽略它(通过应用合适的格式)。 您可以向表添加检查约束,以确保列中的所有条目始终具有相同的时间部分(例如 00:00:00)。


2
投票

根据下面的评论,数据库不是您应该格式化日期字符串以在 GridView 中显示的位置。您可以在显示层中显示层内容,在本例中是在网格视图中。当数据绑定到 gridview 时,您需要在数据中使用格式字符串。是的,下面的例子。

绑定字段:

<columns> <asp:BoundField headertext="CreationDate" dataformatstring="{0:dd-MM-yyyy}" //rearrange these letters as necessary datafield="CreationDate" /> </columns>

模板字段

<itemtemplate> <asp:Label id="Label1" runat="server" Text='<%# Bind("CreationDate", "{0:M-dd-yyyy}") %>'> </asp:Label> </itemtemplate>



2
投票
格式字符串

应用到网格视图列以仅显示日期部分。这种字符串的一个例子是 dd MMMM yyyy

这是 ASP.NET 网格视图吗?如果是这样,这里有示例

代码


1
投票

选择强制转换(转换(char(11),getdate(),113)作为日期时间)


1
投票

Declare @datetime datetime set @datetime = getdate() SELECT convert(varchar, @datetime, 101)

日期时间格式

编辑:

SQL Server 2008 有这个 功能,如果可以升级的话。
  • 只需确保将 00:00:00 保存在 您的桌子并删除
  • 中的时间部分
  • 返回日期时间并将其格式化为您的 网格或您的代码中。

0
投票

我看到你说你想将其保留为日期时间对象,所以据我所知,如果你无法升级到 2008 那么你就会陷入零


0
投票
datetime

数据类型字段中删除时间部分。


您唯一能做的就是在输出之前将其转换为

date

varchar
数据类型,或者在插入/更新之前将时间部分设置为 00:00:00。

示例:

声明:

select cast(getdate() as date)

仅返回日期


0
投票

为什么要关心数据库保存的是准确时间还是 00:00:00?

当您查询此字段(在数据库内部或外部)时,您可以忽略时间值并仅显示日期...

再次说出你想做什么...我相信会更容易帮助你。


0
投票
更新 mytable 设置 mydatetime=convert(datetime,convert(char(10),mydatetime,103),103)

这将更新您的表格。希望这就是您所寻找的。

103:将日期时间格式设置为 dd/mm/yyyy。

© www.soinside.com 2019 - 2024. All rights reserved.