Jap*_*can 1 sql t-sql vb.net sql-server sql-server-2014
CREATE TABLE tbl_Patient
(
PatientID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
LabControlID AS Cast(Right(Year(getDate()),4) as varchar(4)) +'-' + RIGHT('00000' + CAST(PatientID AS VARCHAR(5)), 5),
SequenceID AS "--Codes to display date--"
,First_Name varchar(50)
,Last_Name varchar(50)
,Age int
,Male bit
,Female bit
,
)
Run Code Online (Sandbox Code Playgroud)
我想显示月和日 - 00000并在下面的示例中显示如下.
SequenceID
----------
Jan01-00001
Jan01-00002
Run Code Online (Sandbox Code Playgroud)
请指教.感谢:D
你应该重新考虑你的表结构:
Age直接存储是棘手的(你会每年更新它).你应该存储birthday和计算它.Male bit和Female bit.没有检查约束,你可以得到male 1 and female 1.isMale bit如果需要,可能只是足够的或具有更多值的查找表.LabControlID使用GETDATE,它是时间依赖的.当一年将改变它也将改变.至于SequenceId你可以使用FORMAT和存储date为普通列:
CREATE TABLE tbl_Patient
(
PatientID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
my_date DATE,
SequenceID AS CONCAT(FORMAT(my_date,'MMMdd','en-US'),'-',FORMAT(PatientID,'0000#'))
-- ...
);
INSERT INTO tbl_Patient(my_date)VALUES ('2016-01-01'), ('2016-01-01');
SELECT * FROM tbl_Patient;
Run Code Online (Sandbox Code Playgroud)
输出:
?????????????????????????????????????????????????
? PatientID ? my_date ? SequenceID ?
?????????????????????????????????????????????????
? 1 ? 01.01.2016 00:00:00 ? Jan01-00001 ?
? 2 ? 01.01.2016 00:00:00 ? Jan01-00002 ?
?????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |