sqlserver中日期保存及取值

本文介绍了SQL中日期的存储方式,包括char类型和datetime类型,并提供了获取当前日期、前一天日期及指定格式日期的方法。此外还展示了如何截取日期中的年份和月份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、日期保存

  1. 日期存储可以是char,长度为10
    https://bbs.youkuaiyun.com/topics/70458754
    在这里插入图片描述
  2. 也可以使用datetime等类型来存储
    https://blog.youkuaiyun.com/qq_39019865/article/details/81061521
  3. 过滤当前日期
    year(sqrq) = YEAR(GETDATE())

二、日期取值

  1. 获取当前日期

    select GETDATE() cur
    

    https://www.runoob.com/sql/func-getdate.html

  2. 获取前一天日期

    SELECT DATEADD(dd, -1, GETDATE())
    

    https://www.runoob.com/sql/func-dateadd.html

  3. 获取指定格式的日期

    select CONVERT(VARCHAR(10),GETDATE(),120) cur
    

    https://blog.youkuaiyun.com/weixin_39816740/article/details/80616907
    https://blog.miniasp.com/post/2008/02/26/Use-CONVERT-function-to-deal-with-SQL-Server-Datetime

  4. 截取日期中的年份和月份,datepart、datename
    https://blog.youkuaiyun.com/hzfw2008/article/details/78058916

### SQL Server 支持的数据类型及其用途 #### 1. 整数类型 整数类型用于存储不带小数部分的数值。 - **bigint**: 存储范围从 -2^63 到 2^63-1 的大整数,占用8字节[^1]。 - **int**: 常规使用的整型,取值范围为 -2,147,483,648 至 2,147,483,647,占4字节。 - **smallint**: 较小的整数,适用于较小范围内的数值表示,其区间是从 -32,768 到 32,767,需2字节。 - **tinyint**: 非负的小整数,仅能表达0至255之间的数字,只需1字节。 #### 2. 浮点数与精确数值类型 这些类型用来保存带有小数位的信息。 - **decimal(p,s)** 和 **numeric(p,s)**: 定义精度p(总位数)以及比例s(小数点后的位数),非常适合金融计算等场景下保持高准确性。 ```sql -- 创建包含 decimal 类型字段的表格例子 CREATE TABLE FinancialData ( ID INT PRIMARY KEY, Amount DECIMAL(18, 4) -- 总共可以有18位有效数字,其中四位位于小数点之后 ); ``` - **float(n)** 及 **real**: float接受参数n指定近似度,默认情况下相当于double precision;real则是single precision浮点数,适合科学运算中对绝对精准度要求不是特别高的场合。 #### 3. 字符串类型 字符串类型分为定长字符和变长字符两种形式。 - **char(n)** / **varchar(n)** : char是固定长度的ASCII码字符集,而varchar允许动态调整大小以适应实际输入的内容长度。两者都通过括号内指定的最大字符数量来界定容量上限。 ```sql -- 使用 varchar 类型的例子 DECLARE @Name VARCHAR(50); -- 最多容纳五十个字符的名字 SET @Name = 'John Doe'; PRINT LEN(@Name); -- 输出名字的实际长度 ``` - 对于Unicode编码,则对应 nchar/nvarchar ,它们同样区分是否具有固定的尺寸特性。 #### 4. 时间日期类型 时间戳记录对于很多应用来说至关重要。 - **datetime**, **smalldatetime**, **date**, **time**, **datetime2** 和 **datetimeoffset** 提供了不同程度的时间粒度和支持跨越多个时区的能力。 ```sql SELECT GETDATE() AS CurrentDateTime; -- 获取当前系统日期时间和秒级精度 SELECT SYSDATETIMEOFFSET() AS SystemTimeWithOffset; -- 返回本地服务器时间连同偏移量 ``` #### 5. 特殊数据类型 还有一些特殊用途的数据结构可供选用: - **binary/varbinary(max)** :二进制对象或大数据流; - **xml**:XML文档片段; - **hierarchyid**:层次化路径信息; - **geometry/geography**:地理空间坐标系下的几何图形描述; - **table type**:作为临时表或者用户定义函数返回的结果集模板; - **cursor**:游标的声明; - **timestamp/rowversion**:自动增长版本号标记行变更历史。 SQL Server还允许开发者基于上述基本类型构建更复杂的自定义数据类型,这有助于提高代码的一致性和重用率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值