SqlServer数据库 时间类型字段添加默认值 设置时间格式

本文介绍了在SQL Server中如何为时间类型字段设置默认值,特别是如何显示当前年份。通过将字段类型改为varchar并设置默认值为convert(varchar(4),getdate(),120),可以获取当前年份。同时,文章列举了多种日期格式转换的示例,如101到114的各种风格,展示了如何根据需求调整日期显示格式。" 111997318,10350186,SQL语法基础详解,"['数据库理论', 'SQL语法', '数据库操作']

在做项目的时候,遇到了需要在数据库中给字段默认值的问题,默认值需要显示的是当前年份,给大家分享下:

找了一些资料后,感觉这个方法很适用:

将数据类型改成了varchar,默认值设置为 convert(varchar(4),getdate(),120),这个方法读出的就是当前的年份

 

在得出这个结论之前,也尝试了许多未成功方法:

1,刚开始使用了datepart(year,getdate())这个函数,结果显示的是<不可识别数据>

2.后来用了year(getdate()),结果插入的数据是1905-07-07 00:00:00

 

在找资料过程中,顺便学习了下其他时间格式的设置方法:

select CONVERT(varchar, getdate(), 120 ) ----------------->>SQL语句
2004-09-12 11:06:08 -------------------------------------------->>显示结果(以下类同)

select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\''-\'',\''\''),\'' \'',\''\''),\'':\'',\''\'')
20040912110608

select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12

select CONVERT(varchar(12) , getdate(), 112 )
20040912

select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12

select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004

select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004

select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004

select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004

select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004

select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004

select CONVERT(varchar(12) , getdate(), 108 )
11:06:08

select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1

select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004

select CONVERT(varchar(12) , getdate(), 111 )
2007-3-23

select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1

select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177

设置默认值时去掉"select"单词。

转载于:https://www.cnblogs.com/Jackie-sky/archive/2013/01/17/2865120.html

在 SQL Server 中,查询字段添加时间(即字段的创建时间)并不是一个直接支持的功能。字段的元数据信息(如创建时间)并不直接记录在系统视图中。然而,可以通过以下方式间接获取字段的创建时间。 ### 使用系统目录视图 SQL Server 提供了系统目录视图,例如 `sys.columns` 和 `sys.objects`,可以通过这些视图获取字段的创建时间字段的创建时间通常与表的创建时间一致,因为字段是在表创建时定义的。如果字段是后来通过 `ALTER TABLE` 添加的,则无法直接获取字段的创建时间,但可以查询表的最后修改时间。 ```sql SELECT t.name AS table_name, c.name AS column_name, o.create_date AS table_create_date, o.modify_date AS table_modify_date FROM sys.columns c JOIN sys.tables t ON c.object_id = t.object_id JOIN sys.objects o ON o.object_id = t.object_id WHERE c.name = 'your_column_name'; ``` 此查询将返回指定字段所在的表的创建时间和最后修改时间。如果字段是后来添加的,则 `modify_date` 将反映字段添加时间。 ### 使用默认值约束 如果您希望跟踪字段添加时间,可以在字段定义中使用默认值约束。例如,可以将字段定义为 `DATETIME` 类型,并为其设置默认值为 `GETDATE()`,这样每次插入新记录时,该字段将自动记录当前时间。 ```sql ALTER TABLE your_table ADD your_column DATETIME DEFAULT GETDATE(); ``` 这样,每次插入新记录时,`your_column` 字段将自动记录当前时间,表示该记录的创建时间。 ### 使用触发器 另一种方法是使用触发器来记录字段添加时间。可以在表上创建一个触发器,当插入新记录时,自动记录插入时间。 ```sql CREATE TRIGGER trg_your_table_insert ON your_table AFTER INSERT AS BEGIN UPDATE your_table SET your_column = GETDATE() FROM your_table t INNER JOIN inserted i ON t.id = i.id; END; ``` 此触发器将在每次插入新记录时更新 `your_column` 字段为当前时间。 ### 总结 - **字段创建时间**:可以通过查询系统目录视图 `sys.columns` 和 `sys.objects` 获取字段的创建时间,但这通常是表的创建时间。 - **字段添加时间**:如果字段是后来通过 `ALTER TABLE` 添加的,则无法直接获取字段的创建时间,但可以查询表的最后修改时间。 - **自动记录时间**:可以通过默认值约束或触发器来记录字段添加时间。 以上方法可以帮助您在 SQL Server 中查询字段的创建时间添加时间。根据具体需求选择合适的方法。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值