SQL Server Datetime2数据类型

SQL Server DATETIME2简介

要在数据库中存储日期和时间,请使用SQL Server DATETIME2数据类型。
DATETIME2的语法如下:

DATETIME2(fractional seconds precision)

precision - 小数秒精度是可选的,范围从0到7。
以下语句说明了如何创建包含DATETIME2列的表:

CREATE TABLE table_name (
    ...
    column_name DATETIME2(3),
    ...
);

DATETIME2有两个组成部分:日期和时间。

  • 日期范围为1月01日(0001-01-01)至12月31日(9999-12-31)
  • 时间范围为00:00:0023:59:59.9999999

DATETIME2值的存储大小取决于小数秒精度。对于小于3的精度,它需要6个字节,对于3到4之间的精度,它需要7个字节,对于所有其他精度,它需要8个字节。

DATETIME2的默认字符串文字格式如下:

YYYY-MM-DD hh:mm:ss[.fractional seconds]

在上面的格式中,

  • YYYY是一个四位数字,代表年份。例如2018,它的范围从00019999
  • MM是一个两位数的数字,代表一年中的月份。例如12,它的范围从01到12。
  • DD是一个两位数的数字,代表指定月份的第几天。例如23。它的范围从01到31。
  • hh是一个代表小时的两位数字。它的范围从00到23。
  • mm是代表分钟的两位数字。 范围从00到59。
  • ss是一个两位数字,表示秒数。 范围从00到59。
  • fractional seconds表示秒小数点值,它是0到7位数字。范围从0到9999999

SQL Server DATETIME2示例

以下语句创建一个新表,其中包含一个created_at列,它的数据类型为DATETIME2

CREATE TABLE test.product_colors (
    color_id INT PRIMARY KEY IDENTITY,
    color_name VARCHAR (50) NOT NULL,
    created_at DATETIME2
);

要将当前日期和时间插入created_at列,请将以下INSERT语句与GETDATE()函数一起使用:

INSERT INTO test.product_colors (color_name, created_at)
VALUES
    ('红色', GETDATE());

GETDATE()函数类似于其他数据库系统(如MySQL)中的NOW()函数。要将文字值插入DATETIME2列,请使用以下语句:

INSERT INTO test.product_colors (color_name, created_at)
VALUES
    ('红色', '2020-06-23 09:36:37');

如果要将created_at列的默认值设置为当前日期和时间,请使用以下ALTER TABLE语句:

ALTER TABLE production.product_colors 
ADD CONSTRAINT df_current_time 
DEFAULT CURRENT_TIMESTAMP FOR created_at;

在此语句中,使用CURRENT_TIMESTAMP作为created_at列的默认值。 请注意,CURRENT_TIMESTAMP返回的值与GETDATE()函数返回的值相同。

现在,当向表中插入新行而未指定created_at列的值时,SQL Server将使用该列的当前日期和时间值:

INSERT INTO production.product_colors (color_name)
VALUES
    ('蓝色');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值