sql - 如何从日期(fe 06/30/2019)返回日期格式(fe mm/dd/yyyy)?
问题描述
我正在处理 SQL Server 数据库中的数据验证。我需要检查表中的日期是否以指定国家/地区的有效格式填充。
SQL 中是否有任何函数可以从日期返回日期格式?
例如:日期:06/30/2019我需要得到什么:mm/dd/yyyy
谢谢!
解决方案
正如我们在评论中提到的那样,将日期作为 a 存储varchar
在数据库中是错误的想法。我们现在也知道所有日期都必须是本月的最后一天(来自评论),所以现在我们确实有一些工作要做。因此,您可以使用以下内容修复您的表格:
--Create a new column to store old values
ALTER TABLE YourTable ADD DateString varchar(10);
--Update the new column and change the existing column to ISO (yyyyMMdd) format
UPDATE YourTable
SET DateSting = DateColumn,
DateColumn = TRY_CONVERT(varchar(10), TRY_CONVERT(date, DateColumn, 101), 112);
--Change the data type of the datecolumn
ALTER TABLE YourTable ALTER COLUMN DateColumn date;
--Inspect "lost" data:
SELECT DateString
FROM YourTable
WHERE DateColumn IS NULL
AND DateString IS NOT NULL;
GO
--Add the CHECK CONSTRAINT
ALTER TABLE YourTable
ADD CONSTRAINT Date_EOMonth CHECK (DateColumn = EOMONTH(DateColumn));
如果CHECK CONSTRAINT
创建失败,您的日期不在月底,因此您可以使用以下语句检查它们,或者使用之后的语句将它们全部更新到月底:
SELECT DateColumn
FROM YourTable
WHERE DateColumn != EOMONTH(DateColumn);
--Blanket Update
UPDATE YourTable
SET DateColumn = EOMONTH(DateColumn);
推荐阅读
- xml - (Recursion-2) 所有深度级别元素的自动递增并保持遗传路径
- python - Python-Loop:从 opentopomap.org 下载 .png 并将单个 png 文件连接成一张大图
- amazon-s3 - 来自 S3 的 MemSQL 管道将 NULL 插入 DATE 类型列
- java - 如何返回一个子类独有的变量?
- javascript - 3DS 检查后条带订阅不完整
- javascript - Tampermonkey 如何在两个不同的网站上使用它
- python - 时间序列索引数据更新所有列的某些连续行
- asp.net - asp:DropDownList 不返回正确的值
- java - 有没有更好的方法快速生成 500 万个 csv 文件
- react-native - React Native WebView App 在按下后退按钮时不退出