SQL如何建立Date类型的字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL如何建立Date类型的字段相关的知识,希望对你有一定的参考价值。

我们公司开发的时候数据库有建立了Date类型的字段但是我在另外一个数据库建立Date类型的字段却找不到只有DateTime类型的,不知道是用工具建的还什么怎么样建的,谁能告诉我

1.SQL SERVER的数据类型   数据类型是数据的一种属性,表示数据所表示信息的类型。任何一种计算机语言都定义了自己的数据类型。当然,不同的程序语言都具有不同的特点,所定义的数据类型的种类和名称都或多或少有些不同。SQLServer 提供了 25 种数据类型:   ·Binary [(n)]   ·Varbinary [(n)]   ·Char [(n)]   ·Varchar[(n)]   ·Nchar[(n)]   ·Nvarchar[(n)]   ·Datetime   ·Smalldatetime   ·Decimal[(p[,s])]   ·Numeric[(p[,s])]   ·Float[(n)]   ·Real   ·Int   ·Smallint   ·Tinyint   ·Money   ·Smallmoney   ·Bit   ·Cursor   ·Sysname   ·Timestamp   ·Uniqueidentifier   ·Text   ·Image   ·Ntext   (1)二进制数据类型   二进制数据包括 Binary、Varbinary 和 Image   Binary 数据类型既可以是固定长度的(Binary),也可以是变长度的。   Binary[(n)] 是 n 位固定的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4 个字节。   Varbinary[(n)] 是 n 位变长度的二进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的大小是 n + 4个字节,不是n 个字节。   在 Image 数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应用程序来解释。例如,应用程序可以使用BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。   (2)字符数据类型   字符数据的类型包括 Char,Varchar 和 Text   字符数据是由任何字母、符号和数字任意组合而成的数据。   Varchar 是变长字符数据,其长度不超过 8KB。Char 是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使用Text数据类型存储。例如,因为 html 文档全部都是 ASCII 字符,并且在一般情况下长度超过 8KB,所以这些文档可以 Text 数据类型存储在SQL Server 中。   (3)Unicode 数据类型   Unicode 数据类型包括 Nchar,Nvarchar 和Ntext   在 Microsoft SQL Server 中,传统的非 Unicode 数据类型允许使用由特定字符集定义的字符。在 SQL Server安装过程中,允许选择一种字符集。使用 Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使用Unicode数据类型,所战胜的窨是使用非 Unicode 数据类型所占用的窨大小的两倍。   在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使用这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使用Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使用 Nchar 字符类型,同样,这时最多可以存储4000 个字符。当使用 Ntext 数据类型时,该列可以存储多于 4000 个字符。   (4)日期和时间数据类型   日期和时间数据类型包括 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 之后,日期的格式为日 月有年 形式   (5)数字数据类型   数字数据只包含数字。数字数据类型包括正数和负数、小数(浮点数)和整数   整数由正整数和负整数组成,例如 39、25、0-2 和 33967。在 Micrsoft SQL Server 中,整数存储的数据类型是 Int,Smallint和 Tinyint。Int 数据类型存储数据的范围大于 Smallint 数据类型存储数据的范围,而 Smallint 据类型存储数据的范围大于Tinyint 数据类型存储数据的范围。使用 Int 数据类型存储数据的范围是从 -2 147 483 648 到 2 147 483 647(每一个值要求4个字节存储空间)。使用 Smallint 数据类型时,存储数据的范围从 -32 768 到 32 767(每一个值要求2个字节存储空间)。使用Tinyint 数据类型时,存储数据的范围是从0 到255(每一个值要求1个字节存储空间)。   精确小数数据在 SQL Server 中的数据类型是 Decimal 和 Numeric。这种数据所占的存储空间根据该数据的位数后的位数来确定。   在SQL Server 中,近似小数数据的数据类型是 Float 和 Real。例如,三分之一这个分数记作。3333333,当使用近似数据类型时能准确表示。因此,从系统中检索到的数据可能与存储在该列中数据不完全一样。   (6)货币数据表示正的或者负的货币数量 。   在 Microsoft SQL Server 中,货币数据的数据类型是Money 和 Smallmoney   Money数据类型要求 8 个存储字节,Smallmoney 数据类型要求 4 个存储字节。   (7)特殊数据类型   特殊数据类型包括前面没有提过的数据类型。特殊的数据类型有3种,即 Timestamp、Bit 和 Uniqueidentifier。   Timestamp 用于表示SQL Server 活动的先后顺序,以二进投影的格式表示。Timestamp 数据与插入数据或者日期和时间没有关系。   Bit 由 1 或者 0 组成。当表示真或者假、ON 或者 OFF 时,使用 Bit 数据类型。例如,询问是否是每一次访问的客户机请求可以存储在这种数据类型的列中。   Uniqueidentifier 由 16 字节的十六进制数字组成,表示一个全局唯一的。当表的记录行要求唯一时,GUID是非常有用。例如,在客户标识号列使用这种数据类型可以区别不同的客户。 参考技术A 创建表的同时建立date型字段即可,如:create table test(id int,begindate date)如果有表,但要新添加一个date型字段,可以用下列语句:alter table test add begindate date
  Pages怎么保存为word格式?微软的 Word 文档格式已被广泛运用于各个领域,大家也已经形成了习惯。对于用 Pages 来做文字处理的 Mac 用户来说,有一个简单的选项可以提高跨平台文档的可读性和兼容性,就是保存(或导出) Pages 文件为 Word 的 .doc 或 .docx 文件。

软件名称:
Pages for Mac V5.2(多语中文版) 苹果电脑版
软件大小:
289.1MB
更新时间:
2014-07-01立即下载
  以下讲解是用最新版本的 Pages 文件导出为 Word 文档。之前的 Pages 版本也支持保存为 Word 的 .doc 格式,但它们的处理过程稍有不同 - 在大多数情况下都很相似,这个演绎过程也是可行的,即使你的 Mac 运行的是非常古老的 Pages 版本。顺便提提,Pages 现在在苹果的 App Store 成为了免费应用程序,所以如果你有一个旧的版本,你可以从 Mac App Store 中免费更新到最新版本。当然也推荐将 Pages 更新到最新版本以提高兼容性,因为保存为 Word 文档时还可以存储为 .docx 格式。

如何在Mac上将Pages文件储存为Word文件格式?

  1、在 Mac 上用 Pages 打开你想转换/存储为 Word 格式的文件 。

  2、在“文件”菜单里选择“导出到”,然后在子菜单里选择“Word...” 。

  3、在“导出您的文稿”下拉菜单“Word”选项里,按一下高级选项旁的三角形。

  选择想要的文件格式:选“.docx”用于兼容最新的 Microsoft Office Word 格式,或选“.doc”用于更高的兼容性以兼容老版本的 Word - 然后按“下一步...”。

  4、给这个新的 Word 文件取个名,选择存储文件的地方,然后按“导出”

  你新创建的 Word 文档,无论是 .doc 或 .docx 格式,将会在你指定的地方保存。

  在大多数情况下,Pages 可以没有任何压力的产生兼容的 Word 文档,得到的 .doc 或 .docx 文件在 Microsoft Word 中打开时和 Pages 基本一样,没啥问题。

  如果打开时和原文件有什么不大一样的地方,通常是由于复杂的排版、一种独特的字体、很特殊的ASCII码、表情符号的使用,以及OS X 和 Pages 所独有的字符造成的。考虑到这一点,一个很好的做法就是让保存/导出的文件尽量简单、使用跨平台标准化的字体,并尽量避免任何异常复杂的文档格式。即使对于大量文本的文件或一个简单的报告来说,这也通常不是一个问题,并且转换后的文件应该不论在另一台 Mac 或 Windows PC 上的 Microsoft Office 都能完美打开。

  最后,如果您或收件人使用的是 Windows 电脑,无法使用 Pages 将文件重新保存到 Word 兼容的格式,另一种选择是在 Windows 下将 .pages 文件扩展名改成 .zip 后再用 Word 打开的办法,但这个方法除非实在没其他办法时可以一试,因为它并不好用,它有时会去除一些独特的格式,有可能导致在 PC 上的 Word 打开时发现这个 Pages 文件里的格式相当古怪。因此,如果你(或收件人)有机会在 Mac 机上操作,最好就是重新存储为 Word 文件
参考技术B

1、首先我们打开一个要操作的数据表。

2、通过create index来添加索引了。

3、展开表下面的索引文件夹,就可以看到创建的索引了。

4、创建索引的时候还可以在字段后面添加排序方式。

5、删除索引的时候用的是drop语句。

6、执行drop语句以后,在索引文件夹下面就没有了索引。

参考技术C

创建表的同时建立date型字段即可,如:

create table test
(id int,
begindate date)

如果有表,但要新添加一个date型字段,可以用下列语句:

alter table test add begindate date

参考技术D 可以通过 (字段名称 Date)的形式创建。
sql:create table tablename(datetime Date);这样就创建了一个date类型的字段。
插入数据:”insert into tablename(datetime) values(sysdate)“这样就可以把当前时间插入到时间类型的字段中。

在java中如何将日期字符串保存到Oracle数据库中对应的Date类型字段中

前言

我们知道利用JDBC操作数据库时,插入SQL字段是个繁琐的过程,操作起来实际上并不是很复杂,但是在java中总有些字段类型与SQL中的字段类型不匹配,直接导致很烦!!!本文着重讲解如何将日期字符串插入到Orale中对应的Date类型字段中

注意

Oracle中的Date字段

ResultSet.getDate()

PreparedStatement.setDate()

都是java.sql.Date类型的,所以我们无论怎样转化,最终目标都是要将字符串或者java.util.Date类型转化成java.sql.Date类型

1、首先将字符串转换成java.util.Date

  • 用户实体类
    package com.ebuy.pojo;
    
    import java.io.Serializable;
    import java.util.Date;
    
    public class User implements Serializable {
        private String userId;
        private String userName;
        private String password;
        private String sex;
        /**
         * 出生日期
         */
        private Date birthday;
        private String identityCode;
        private String email;
        private String mobile;
        private String address;
        private int status = 0;
        private String code;
        private int role;
    }
    
  • 我们首先要将我们手动输入的出生日期字符串,转换成java.util.Date类型
    //1 首先使用简化日期格式(规定日期包括时分秒的显示形式)
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    	
    //输入的出生日期字符串的格式是 yyyy-MM-dd HH:mm:ss(要和SimpleDateFormat规范保持一致)
    String inputBirthday = "2000-02-03 12:12:24";
    	
    //此时已转换为java.util.Date类型
    Date string_To_util = sdf.parse(inputBirthday);
    System.out.println(string_To_util);	
    
  • 结果
    在这里插入图片描述
  • 将转换后的日期字符串存入User实体类对象中
    User user = new User();
    //将转换过的日期字符串存入User实体类对象中()
    user.setBirthday(string_To_util);
    

2、将java.util.Date 转为java.sql. Date

  • 这一步一般会用在执行SQL语句处
    //java.util.Date 转为java.sql. Date(getTime()获取日期的毫秒数)
    java.sql.Date sqlDate = new java.sql.Date(user.getBirthday().getTime());
    
    System.out.println("sqlDate= " + sqlDate);
    
  • 结果
    在这里插入图片描述

3、真实场景

  • 添加或注册用户的界面
    在这里插入图片描述
  • UserServlet接收表单参数(出生日期)
    在这里插入图片描述
  • 数据访问层实现类中(执行SQL语句处)
    在这里插入图片描述

    到这就成功将一个手动从前端页面输入的日期字符串保存到Oracle数据库中了。

4、如果觉得麻烦,还有一个简单粗暴的方法

  • Oracle内置的方法to_date

    可将字符串直接转化成java.sql.Date类型,而且转换过的日期可以直接进行比大小
    select to_date(‘2004-05-07 13:23:44’,‘yyyy-mm-dd hh24:mi:ss’) from dual

  • 直接将实体类中的出生日期字段设置为String类型
    	package com.ebuy.pojo;
    	
    	import java.io.Serializable;
    	import java.util.Date;
    
    	public class User implements Serializable {
    	    private String userId;
    	    private String userName;
    	    private String password;
    	    private String sex;
    	    /**
    	     * 出生日期(设置为String类型)
    	     */
    	    private String birthday;
    	    private String identityCode;
    	    private String email;
    	    private String mobile;
    	    private String address;
    	    private int status = 0;
    	    private String code;
    	    private int role;
    	}
    
  • UserServlet层直接接收前端表单页面的的eu_birthday参数即可,无需进行java.util.Date的转换
  • 在数据访问层接口实现类出利用to_date(String_value,format_value)直接将字符串转换成java.sql.Date类型(但是要保证前端输入的日期字符串格式个to_date()的规范格式一致)
    在这里插入图片描述

完事!!!

但是不建议使用!!!

以上是关于SQL如何建立Date类型的字段的主要内容,如果未能解决你的问题,请参考以下文章

oracle的表里有date类字段,如何查询时截取年份?

日期时间JPA映射

如何正确地转换成 java.util.Date 通过 JPA 的 Oracle 日期字段

oracle中如何修改日期类型的字段值

java类里 Date 类型的数据存数据库里时对应的字段类型也是Date的类型,存的时候格式应该为啥?

util.date和sql.date的衔接处理