一秒看懂SQL Server 2008日期时间类型区别

news/2024/6/18 23:20:26 标签: sql server, 数据库, sql server 2008

一开始学习数据库的基本数据类型,都为其数据类型的种类搞晕。为什么数据库需要那么多的数据类型,一个时间也可以分出6中数据类型。显然老微不是吃饱了撑着。这么做肯定是有目的的。假设当你的公司需要存储超过100万条数据,我们就假设使用int和bigint,int占空间是4字节表示范围是-2^31~2^31-1,也就是32位数据。bigint则是8字节,63位数据,假设我们在使用int足够存储的情况下,某位新用户设置为bigint类型进行存储,那么100万*4字节=3.814697265625MB。现在你也许会觉得不到4M的空间不足以考虑,好,那么我们数据是10亿条呢,而且数据中不可能就只有一列把3.8M*100*N=380M+。废话不多说,把类型分的那么细是肯定有原因的。
让我们从最难的数据类型开始(我觉得是)

日期时间类型

  • date
  • time
  • datetime
  • datetime2
  • smalldatetime
  • datetimeoffset
DATE
2015-12-01

TIME
09:25:09.2670000

DATETIME
12  1 2015  9:25AM

DATETIME2可以设置精度
DATETIME2
2015-12-01 09:25:09.2670000

DATETIME2(5)
2015-12-01 09:25:09.26700

SMALLDATETIME
12  1 2015  9:25AM

DATETIMEOFFSET
2015-12-01 09:25:09.2670000 +00:00

这是输出上面的源码

DECLARE @dt AS DATE
SET @dt=GETDATE()
PRINT 'DATE';
PRINT @dt;
/*2015-12-01*/

DECLARE @dt2 AS TIME
SET @dt2=GETDATE()
PRINT 'TIME';
PRINT @dt2;
/*09:12:53.7830000*/

DECLARE @dt3 AS DATETIME
SET @dt3=GETDATE()
PRINT 'DATETIME';
PRINT @dt3;
/*12  1 2015  9:13AM*/

PRINT 'DATETIME2可以设置精度';
DECLARE @dt4 AS DATETIME2
SET @dt4=GETDATE()
PRINT 'DATETIME2';
PRINT @dt4;
/*2015-12-01 09:16:03.6300000*/

DECLARE @dt5 AS DATETIME2(5)
SET @dt5=GETDATE()
PRINT 'DATETIME2(5)';
PRINT @dt5;
/*2015-12-01 09:16:03.63000*/

DECLARE @dt7 AS SMALLDATETIME
SET @dt7=GETDATE()
PRINT 'SMALLDATETIME';
PRINT @dt7;
/*12  1 2015  9:18AM*/

DECLARE @dt8 AS DATETIMEOFFSET
SET @dt8=GETDATE()
PRINT 'DATETIMEOFFSET';
PRINT @dt8;
/*2015-12-01 09:18:54.5770000 +00:00*/

总结以上,date表示日期,time表示时间,datetime时间+日期
datetime2[(n)]是精度可以改变的时间+日期,当然是指改变时间的精度啦。smalldatetime的结果类似于datetime,但是还是有区别的。
smalldatetime的有效时间范围1900/1/1~2079/6/6
datetime的有效时间范围1753/1/1~9999/12/31,
smalldatetime精确到分钟,datetime精确到3.33ms。


http://www.niftyadmin.cn/n/892111.html

相关文章

网站整合CKEditor和CKFinder(Java版)

准备文件 CKEditor: 在 http://ckeditor.com/download ,可以下载到各种版本的CKEditor,包括完整版full、标准版standard、基础版basic等。同时也可定制的下载,可以选择Toolbar类型、插件、语言等。 CKEditor for java: 在http://ckeditor.c…

JS插件之HighSlider

当我们有一块很大的文本要再textarea中显示,但是又碍于文本块太大,放下之后,影响我们的网站的整体布局。显示一部分却又让部分重要信息得不到展示。这时候,我们就想到了用HighSlider。先看一下效果图。我使用官网提供的。 怎么…

Struts2项目s:debug标签的问题

今天在使用<s:debug>标签做测试的时候&#xff0c;总会出现一个问题&#xff0c; 十二月 16, 2015 10:32:56 上午 org.apache.catalina.core.ApplicationDispatcher invoke 严重: Servlet.service() for servlet jsp threw exception java.util.ConcurrentModification…

完美解决SSH项目Hibernate update时候org.springframework.dao.DuplicateKeyException

相信大家在使用Hibernate对查询结果进行更新的时候都会遇见过同样的问题。 关键的问题是 a different object with the same identifier value was already associated with the session 意思是有另外一个对象拥有的那个ID&#xff0c;与Session中已经关联的ID一致。就是说那…

s:if标签分析

打开/struts-tag.tld <!--自定义标签的标记--> <tag><!--标签描述&#xff0c;可有可无--><description><![CDATA[If tag]]></description><!--指定标签名为if--><name>if</name><!--指定标签处理类为IfTag-->&l…

Java 实现RMI入门程序

因为是Java内置的功能&#xff0c;所以不需要引入任何额外的Jar包 首先我们定义一个接口&#xff0c;这个接口必须继承Remote package cn.blueboz.rmi;import java.rmi.Remote; import java.rmi.RemoteException;/*** Created by Administrator on 2016/4/20.* 定义一个远程接…

Jaxws学习笔记(一)入门程序之服务接口发布

在Java中一共有三种WebService规范&#xff0c;Jax-WS,JAXM,Jax-RS。 Jax-WS(Java Api for XML-Based WebService)JAXM支持文件传输&#xff0c;暴露更多底层细节&#xff0c;不建议使用Jax-RS是针对Restful风格定制的一套Web服务规范&#xff08;建议重点掌握&#xff09; Ja…

快速傅里叶变换Java版本

随手翻起大学时代自己手写的代码&#xff0c;代码写的不是很好&#xff0c;请参考。不喜勿喷。只能进行整的快速傅里叶变换 import java.util.*; import java.lang.Math; public class fastft {public static void main(String[] args){double[] c{2,3,4,5,6,7,8,9};fft ftnew…