仅在sql server的列中插入日期

时间:2010-05-26 06:24:09

标签: sql sql-server

有没有办法在没有时间的情况下在sql server中的datetime列中只插入日期? 例如

  

日期(日期时间)

     

===============

     

2000年12月1日

     

16-02-2000

或者我应该在恢复时将其存储为varchar和强制转换,以便我可以转换为我需要的任何形式。

3 个答案:

答案 0 :(得分:2)

我的解决方案是将其存储为varchar,并在需要时将其转换为日期时间

SELECT CONVERT(VARCHAR(10),GETDATE(),111) -- get datepart onl y

还请查看有关创建日期类型的帖子:

创建用户定义的数据类型:

create type Date from dateTime

http://weblogs.sqlteam.com/jeffs/archive/2007/10/31/sql-server-2005-date-time-only-data-types.aspx

答案 1 :(得分:1)

如果您使用的是SQLServer 2008,则可以使用date数据类型。

以下SQL将删除任何时间值并将它们全部设置为零。所以你不必担心时间值是否存在。

Select  Cast(Floor(Cast(MyDateColumn as float)) as DateTime) as MyDateColumn
From dbo.MyTable

答案 2 :(得分:1)

只需使用 smalldatetime 日期 。在更新日期值之前或在应用中选择日期值之后,将日期转换为格式。

您可以在sql查询或应用中更改日期格式的格式。

以下是sql

中日期格式的列表

http://www.sql-server-helper.com/tips/date-formats.aspx

这是日期数据类型的链接

http://databases.about.com/od/sqlserver/a/date_time.htm

祝你好运!