我试着理解这段代码,但是我失败了,任何人帮忙〜
(a + n**b)+2**(c*n + d)
答案 0 :(得分:0)
获取Start_Date的日期部分和Start_Time的时间部分,并使用CONCAT将它们连接在一起以生成datetime变量。 如果start_date为空,则将日期设置为“1911/01/01” 如果start_time为空,则将其设置为'00:00:00'
CAST( --CONVERT TO A DIFFERT TYPE
CONCAT( --JOIN 2 OR MORE STRINGS TOGETHER
CAST(
CASE WHEN IFNULL(SM.start_date,'') = '' THEN'1911/01/01'ELSE SM.start_date END AS CHAR(10) --IF BLANK SET TO ........OR ELSE TAKE THE FIRST 10 CHARACTERS
) ,'',
CAST(CASE WHEN IFNULL(SM.start_time,'') = '' THEN'00:00:00'ELSE SM.start_time END AS CHAR(8) --IF BLANK SET TO ........OR ELSE TAKE THE FIRST 8 CHARACTERS
)
)
AS DATETIME)
然而 - 这不是一个好方法,我认为它不会正常工作。
答案 1 :(得分:0)
pseduo-code翻译将是:
SM.start_date
为NULL
,请将SM.start_date
视为1911/01/01
,否则请使用SM.start_date
。
CAST
结果表达式为10个字符的字符串(以容纳yyyy/mm/dd
)。
同样地,
SM.start_time
为NULL
,请将SM.start_time
视为00:00:00
,否则请使用SM.start_time
。
CAST
结果表达式为8个字符的字符串(以容纳hh:mm:ss
)。连接上面的两个表达式,并将最终字符串称为DATETIME