将日期接收为<div class="content">
<div class="container-fluid">
<div class="row">
<div class="col-sm pt-5 pb-5">
<div class="etusivun_teksti" data-aos="fade-up">
<?php if (have_posts()) : while(have_posts()) : the_post();?>
<?php the_content();?>
<?php endwhile; endif;?>
</div>
</div>
<div class="col-sm etusivun_kuva"></div>
</div>
</div>
</div>
,并需要将其转换为"19-May"
,'05/01/2019'
到"19-June"
。
我尝试了各种日期转换,但是没有用。
答案 0 :(得分:0)
您可以尝试一下。以这种格式存储日期不是一个好习惯/建议,您应该使用适当的数据类型,该数据类型适用于此数据类型。
您应使用正确的日期时间值更新值,然后再更改数据类型。这样可以节省您的时间,并且您不需要每次都进行这些转换。
Select Try_Cast('19-May 2019' as Datetime)
OR
Select Try_Cast('19-May' + '2019' as Datetime)
要获取月份的第一个日期,请尝试以下查询。
SELECT DATEADD(month, DATEDIFF(month, 0, Try_Cast('19-May 2019' as Datetime)), 0) AS StartOfMonth
修改
要根据给定的字符串数据获取月份的第一个日期,可以使用以下查询。
declare @dateinStr varchar(20) = '19-May'
Select try_cast('01-' + Replace(@dateinStr, LEFT(@dateinStr, 3), '') + LEFT(@dateinStr, 2) as Datetime) as Date
这里是demo。
答案 1 :(得分:0)
我想这两个月只能是3个字符,
Select s,
try_Cast(concat(right(s, 3), ' 2019') as Datetime)
from
(
values
('19-May'),
('19-Jun')
) t(s);
如果几个月真的是“六月”和“八月”,那么
select s,
try_cast(concat(substring(s, charindex('-',s)+1, 3), ' 2019') as date)
from
(
values
('19-May'),
('19-June'),
('15-August')
) t(s);
如果您需要将其设置为mm/dd/yyyy
格式,请使用101
样式。
答案 2 :(得分:0)
您可以:
SELECT DATEADD(DAY, 1, EOMONTH(CONVERT(DATE, Dates + '-2019'), -1))
FROM ( VALUES ('19-May'), ('19-June')
) t(Dates);