日期的存储问题,不知道用nvarchar存储还是用smalldatetime类型好
用字符型的存储,每次写入时都要写,而且获取的是客户端数据;但是查询时可以用诸如date1> = '2007-06-04 '来查询;
用日期型的时候,是用getdate()来由服务器给时间,但存储结果是2007-6-4 16:53:00,这样,按照日期段查询时,就能用date1> = '2007-06-04 ' and date2 <= '2007-06-30 '来查询,但查不到date1= '2007-06-04 '的数据(日报表)
请问大家有没有好的建议,谢谢大家~~~
[解决办法]
用一下convert
select *
from tb
where convert(char(10),date1,120) between '2006-06-10 ' and '2007-06-10 '
[解决办法]
用一下convert
select *
from tb
where convert(char(10),date1,120) between '2006-06-10 ' and '2007-06-10 '
[解决办法]
日期和时间数据类型
日期和时间数据类型包括 Datetime 和 Smalldatetime两种类型
日期和时间数据类型由有效的日期和时间组成。例如,有效的日期和时间数据包括“4/01/98 12:15:00:00:00 PM”和“1:28:29:15:01AM 8/17/98”。前一个数据类型是日期在前,时间在后一个数据类型是霎时间在前,日期在后。在 Microsoft SQL Server中,日期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的日期范围是从 1753 年 1 月 1 日开始,到9999 年12 月 31 日结束(每一个值要求 8 个存储字节)。使用 Smalldatetime 数据类型时,所存储的日期范围是 1900年 1 月 1日 开始,到 2079 年 12 月 31 日结束(每一个值要求 4 个存储字节)。
日期的格式可以设定。设置日期格式的命令如下:
Set DateFormat {format | @format _var|
其中,format | @format_var 是日期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,日期格式为MDY。
例如,当执行 Set DateFormat YMD 之后,日期的格式为年 月 日 形式;当执行 Set DateFormat DMY 之后,日期的格式为日 月 年 形式