有没有办法在没有时间的情况下在sql server中的datetime列中只插入日期? 例如
日期(日期时间)
===============
2000年12月1日
16-02-2000
或者我应该在恢复时将其存储为varchar和强制转换,以便我可以转换为我需要的任何形式。
答案 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
祝你好运!