在我的表中,强制列为string(例如:“20170502”)。
我想从这个字符串中得到一天中的一周,所以我尝试转换为日期格式,但这不起作用。
$event = VEventMp::where('event_seq', '=', $mypage_data->event_seq)
->select(
'ENFORCE_PLACE',
'ENFORCE_FROM',
\DB::raw("DATE_FORMAT(STR_TO_DATE(ENFORCE_FROM,'%y/%m/%d'), '%m月%d日')
AS day"),
\DB::raw('(CASE WHEN WEEKDAY(day) = 0 THEN "月"
WHEN WEEKDAY(start_time) = 1 THEN "火"
WHEN WEEKDAY(start_time) = 2 THEN "水"
WHEN WEEKDAY(start_time) = 3 THEN "木"
WHEN WEEKDAY(start_time) = 4 THEN "金"
WHEN WEEKDAY(start_time) = 5 THEN "土"
WHEN WEEKDAY(start_time) = 6 THEN "日" END) AS weekday')
->first();
我哪里出错了?
谢谢您!
1条答案
按热度按时间ovfsdjhp1#
首先,如果日期格式
20170502
那么你必须在打电话给STR_TO_DATE
,将其更改为:其次,不能在
SELECT
查询的一部分,因此您需要更改CASE
表达式到