--当前时间为2020年5月12日
Select convert(varchar(100),getdate(),0); --月 日 4位年 时:分AM/PM (如:05 12 2020 10:50AM)
Select convert(varchar(100),getdate(),1); --月/日/2位年 (如:05/12/20)
Select convert(varchar(100),getdate(),2); --2位年.月.日 (如:20.05.12)
Select convert(varchar(100),getdate(),3); --日/月/2位年 (如:12/05/20)
Select convert(varchar(100),getdate(),4); --日.月.2位年 (如:12.05.20)
Select convert(varchar(100),getdate(),5); --日-月-2位年 (如:12-05-20)
Select convert(varchar(100),getdate(),6); --月 日 2位年 (如:12 05 20)
Select convert(varchar(100),getdate(),7); --月 日,2位年 (如:05 12, 20)
Select convert(varchar(100),getdate(),8); --时:分:秒 (如:11:20:06)
Select convert(varchar(100),getdate(),9); --月 日4位年 时:分:秒:毫秒AM/PM (如:05 12 2020 11:23:36:763AM)
Select convert(varchar(100),getdate(),10); --月-日-2位年 (如:05-12-20)
Select convert(varchar(100),getdate(),11); --2位年/月/日 (如:20/05/12)
Select convert(varchar(100),getdate(),12); --2位年月日 (如:200512)
Select convert(varchar(100),getdate(),13); --日月4位年 时:分:秒:毫秒 (如:12 05 2020 11:38:32:920)
Select convert(varchar(100),getdate(),14); --时:分:秒:毫秒 (如:11:39:51:107)
Select convert(varchar(100),getdate(),20); -- 4位年-月-日 时:分:秒 (如:2020-05-12 11:39:51)
Select convert(varchar(100),getdate(),21); -- 4位年-月-日 时:分:秒:毫秒 (如:2020-05-12 11:39:51.107)
Select convert(varchar(100),getdate(),22); --月/日/2位年 时:分:秒AM/PM (如:05/12/20 11:39:51 AM)
Select convert(varchar(100),getdate(),23); --4位年-月-日 (如:2020-05-12)
Select convert(varchar(100),getdate(),24); --时:分:秒 (如:11:46:00)
Select convert(varchar(100),getdate(),25); --4位年-月-日 时:分:秒.毫秒 (如:2020-05-12 11:48:24.870)
Select convert(varchar(100),getdate(),100); --月 日 4位年 时:分AM/PM (如:05 12 2020 11:48AM)
Select convert(varchar(100),getdate(),101); --月/日/4位年 (如:05/12/2020)
Select convert(varchar(100),getdate(),102); --4位年.月.日 (如:2020.05.12)
Select convert(varchar(100),getdate(),103); --月/日/4位年 (如:12/05/2020)
Select convert(varchar(100),getdate(),104); --日.月.4位年 (如:12.05.2020)
Select convert(varchar(100),getdate(),105); --日-月-4位年 (如:12-05-2020)
Select convert(varchar(100),getdate(),106); --日 月 4位年 (如:12 05 2020)
Select convert(varchar(100),getdate(),107); --月 日,4为年 (如:05 12, 2020)
Select convert(varchar(100),getdate(),108); --时;分;秒 (如:11:55:34)
Select convert(varchar(100),getdate(),109); --月 日 4位年 时;分;秒;毫秒AM/PM (如:05 12 2020 11:55:34:033AM)
Select convert(varchar(100),getdate(),110); --月-日-4位年 (如:05-12-2020)
Select convert(varchar(100),getdate(),111); --4位年/月/日 (如:2020/05/12)
Select convert(varchar(100),getdate(),112); --4位年月日 (如:20200512)
Select convert(varchar(100),getdate(),113); --日 月 4位年 时:分:秒:毫秒 (如:12 05 2020 11:59:10:587)
Select convert(varchar(100),getdate(),114); --时:分:秒:毫秒 (如:11:59:10:587)
Select convert(varchar(100),getdate(),120); --4位年-月-日 时;分:秒 (如:2020-05-12 11:59:10)
Select convert(varchar(100),getdate(),121); --4位年-月-日 时:分:秒:毫秒(如:2020-05-12 11:59:10.587)
Select convert(varchar(100),getdate(),126); --4位年-月-日T时:分:秒:毫秒(如:2020-05-12T11:59:10.587)
DECLARE @b_yy DATETIME
, @b_mm DATETIME
, @e_mm DATETIME
, @mm VARCHAR(6)
, @yy VARCHAR(4);
DECLARE @h_mm DATETIME --环比月月初
, @h_yy DATETIME --环比月年初
, @hm VARCHAR(6); --环比月
DECLARE @b_ly DATETIME
, @b_lm DATETIME
, @b_llm DATETIME
, @e_lm DATETIME
, @lm VARCHAR(6)
, @ly VARCHAR(4);
--赋值
SET @b_yy = DATEADD(yy, DATEDIFF(yy, 0, GETDATE() - 1), 0); --年初第一天
SET @yy = CONVERT(CHAR(4), @b_yy, 112); --今年年份
SET @b_mm = DATEADD(mm, DATEDIFF(mm, 0, GETDATE() - 1), 0); --本月第一天
SET @e_mm = DATEADD(dd, DATEDIFF(dd, 0, GETDATE()), 0); --今天
SET @mm = CONVERT(CHAR(6), @b_mm, 112); --本月月份
SET @h_mm = DATEADD(mm, -1, @b_mm); --环比月初第一天
SET @h_yy = DATEADD(yy, DATEDIFF(yy, 0, @h_mm), 0); --环比月年初第一天
SET @hm = CONVERT(CHAR(6), @h_mm, 112); --环比月
SET @b_ly = DATEADD(yy, -1, @b_yy); --同比年初第一天
SET @b_lm = DATEADD(yy, -1, @b_mm); --同比月第一天
SET @b_llm = DATEADD(mm, 1, DATEADD(yy, -1, @b_mm)); --同比月的下个月的第一天
SET @e_lm = DATEADD(yy, -1, @e_mm); --同比月今天
SET @ly = CONVERT(CHAR(4), @b_ly, 112); --同比年
SET @lm = CONVERT(CHAR(6), @b_lm, 112); --同比月
写一个简单插入数据的存储过程,期中包括声明时间变量,赋值时间变量,然后插入数据@InsertTime 是记录插入的时间
---查看视图字段类型
SELECT
COLUMN_NAME
,DATA_TYPE
,CHARACTER_MAXIMUM_LENGTH
,NUMERIC_PRECISION
,NUMERIC_SCALE
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'PO_PomainView' --AND COLUMN_NAME = 'cVenCode';
-- 删除旧表(如果存在)
IF OBJECT_ID('PO_PomainViewT', 'U') IS NOT NULL
DROP TABLE PO_PomainViewT;
GO
-- 创建目标表 PO_PomainViewT
CREATE TABLE PO_PomainViewT (
dPODate DATETIME NULL, -- 订单日期
cPOID NVARCHAR(30) NULL, -- 订单编号
cVenCode NVARCHAR(20) NULL, -- 供应商编码
cVenName NVARCHAR(98) NULL, -- 供应商名称
cItemCode NVARCHAR(60) NULL, -- 项目编码
cItemName NVARCHAR(255) NULL, -- 项目名称
cInvCode NVARCHAR(60) NULL, -- 存货编码
cInvName NVARCHAR(255) NULL, -- 存货名称
cInvStd NVARCHAR(255) NULL, -- 规格型号
cInvDefine3 NVARCHAR(20) NULL, -- 加工类型
dArriveDate DATETIME NULL, -- 需求日期
iQuantity DECIMAL(30, 10) NULL,-- 订单数量
iTaxPrice DECIMAL(28, 6) NULL, -- 含税单价
iSum DECIMAL(19, 4) NULL, -- 含税金额
cbMemo NVARCHAR(255) NULL, -- 行备注
cDefine23 NVARCHAR(60) NULL, -- 请购人
cDefine28 NVARCHAR(120) NULL, -- 品牌
cDefine22 NVARCHAR(60) NULL, -- 加工类型
cMemo NVARCHAR(255) NULL, -- 备注
sh VARCHAR(4) NULL, -- 审核状态
asum DECIMAL(19, 4) NULL, -- 未入库数量
InsertTime VARCHAR(100) NULL -- 记录插入的时间
);
GO
-- 删除旧存储过程(如果存在)
IF OBJECT_ID('usp_UpdatePO_PomainViewT', 'P') IS NOT NULL
DROP PROCEDURE usp_UpdatePO_PomainViewT;
GO
-- 创建存储过程 usp_UpdatePO_PomainViewT
CREATE PROCEDURE usp_UpdatePO_PomainViewT
AS
BEGIN
-- 声明变量
DECLARE @InsertTime VARCHAR(100);
-- 设置变量值为当前时间,格式为 yyyy-mm-dd hh:mi:ss
SET @InsertTime = CONVERT(VARCHAR(100), GETDATE(), 120);
-- 删除目标表中的旧数据
TRUNCATE TABLE PO_PomainViewT;
-- 从视图 PO_PomainView 中插入新数据到 PO_PomainViewT
INSERT INTO PO_PomainViewT (
dPODate, -- 订单日期
cPOID, -- 订单编号
cVenCode, -- 供应商编码
cVenName, -- 供应商名称
cItemCode, -- 项目编码
cItemName, -- 项目名称
cInvCode, -- 存货编码
cInvName, -- 存货名称
cInvStd, -- 规格型号
cInvDefine3,-- 加工类型
dArriveDate,-- 需求日期
iQuantity, -- 订单数量
iTaxPrice, -- 含税单价
iSum, -- 含税金额
cbMemo, -- 行备注
cDefine23, -- 请购人
cDefine28, -- 品牌
cDefine22, -- 加工类型
cMemo, -- 备注
sh, -- 审核状态
asum, -- 未入库数量
InsertTime -- 记录插入的时间
)
SELECT
dPODate, -- 订单日期
cPOID, -- 订单编号
cVenCode, -- 供应商编码
cVenName, -- 供应商名称
cItemCode, -- 项目编码
cItemName, -- 项目名称
cInvCode, -- 存货编码
cInvName, -- 存货名称
cInvStd, -- 规格型号
cInvDefine3,-- 加工类型
dArriveDate,-- 需求日期
iQuantity, -- 订单数量
iTaxPrice, -- 含税单价
iSum, -- 含税金额
cbMemo, -- 行备注
cDefine23, -- 请购人
cDefine28, -- 品牌
cDefine22, -- 加工类型
cMemo, -- 备注
sh, -- 审核状态
asum, -- 未入库数量
@InsertTime -- 当前插入时间
FROM PO_PomainView;
END;
GO
--查看存储过程
exec sp_helptext 'usp_UpdatePO_PomainViewT'
-- 查询
select top 10 *from PO_PomainView;
select count(*) as 列数 from PO_PomainView;