SQL中对 datetime 类型操作

datetime 是SQL中 表示时间的类型

下面,我将演示几种插入 datetime 类型的数据

先创建一个test 表,定义表中记录为 datetime 类型

create table test(t datetime);

1、插入 now()

now 是 SQL 内置函数,可以获取当前时间

insert into test values(now());

 2、插入指定时间

如果我们想插入指定时间的话需要按照格式进行插入,而SQL中时间格式有很多,这次主要介绍标准格式。

标准时间格式:'YYYY-MM-DD  HH:mm:ss'

例:'2022-08-01 12:00:00'

### SQLDateTime 类型操作 #### 创建带有 DateTime 字段的表 为了展示如何创建包含 `DateTime` 数据类型的表格,在 SQL Server 或 MySQL 中可以使用如下语句: ```sql CREATE TABLE ExampleTable ( ID INT PRIMARY KEY, Name VARCHAR(100), CreatedDate DATETIME -- 定义一个名为CreatedDate的列,其数据类型DATETIME ); ``` #### 插入具有 DateTime 值的数据 当向含有 `DateTime` 列的表中插入记录时,可以直接指定日期时间字符串或利用当前系统的时间戳。 对于 SQL Server: ```sql INSERT INTO ExampleTable (ID, Name, CreatedDate) VALUES (1, 'Test Entry', GETDATE()); -- 使用GETDATE()获取服务器上的当前日期和时间[^1] ``` 而对于 MySQL,则可采用 NOW(): ```sql INSERT INTO ExampleTable (ID, Name, CreatedDate) VALUES (2, 'Another Test', NOW()); ``` #### 查询特定范围内的日期 要查找某个时间段内发生的事件,可以通过比较两个 `DateTime` 表达式的大小来实现。例如查询过去一周内创建的所有条目: ```sql SELECT * FROM ExampleTable WHERE CreatedDate >= DATEADD(DAY,-7,GETDATE()) AND CreatedDate < GETDATE();-- 对于SQL Server使用DATEADD函数调整日期间隔 -- 或者在MySQL里这样做: SELECT * FROM ExampleTable WHERE CreatedDate BETWEEN DATE_SUB(NOW(), INTERVAL 7 DAY) AND NOW(); ``` #### 更新现有记录中的 DateTime 字段 如果想要更新某一行或多行的 `DateTime` 属性,只需提供新的有效值即可。比如设置所有未分配日期项目的默认时间为今天早上8点整: ```sql UPDATE ExampleTable SET CreatedDate = CAST(CAST(GETDATE() AS DATE) AS DATETIME)+CAST('08:00:00' AS TIME)-- 这是在SQL Server里的做法 -- 而在MySQL下则应这样写: UPDATE ExampleTable SET CreatedDate = CONCAT(CURDATE(),' ','08:00:00'); ``` #### 将 DateTime 格式化输出 有时需要按照一定的格式呈现给定的 `DateTime` 变量。这通常涉及到调用相应的格式化方法。以 SQL Server 和 MySQL 的不同方式为例: - **SQL Server** ```sql SELECT FORMAT(CreatedDate,'yyyy-MM-dd HH:mm:ss') As FormattedDate FROM ExampleTable;-- 使用FORMAT函数自定义输出样式 ``` - **MySQL** ```sql SELECT DATE_FORMAT(CreatedDate,'%Y-%m-%d %H:%i:%s') As FormattedDate FROM ExampleTable; ``` #### 批量修改多张表结构增加 DateTime 字段 针对多个相似命名模式下的表一次性添加相同名称的新字段,可通过动态构建 SQL 语句完成此任务。下面给出的是适用于 MySQL 的例子: ```sql SELECT CONCAT( 'ALTER TABLE ', table_name, ' ADD COLUMN create_time_date DATETIME DEFAULT NULL;' ) FROM information_schema.tables WHERE table_name LIKE 'hts_%'; ``` 上述命令会生成一系列用于更改各目标表架构的指令列表[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱躺平的威威

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值