这对数据库逻辑意味着什么?

时间:2017-02-09 08:08:06

标签: mysql

我试着理解这段代码,但是我失败了,任何人帮忙〜

(a + n**b)+2**(c*n + d)

2 个答案:

答案 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_dateNULL,请将SM.start_date视为1911/01/01,否则请使用SM.start_dateCAST结果表达式为10个字符的字符串(以容纳yyyy/mm/dd)。


同样地,

  • 如果SM.start_timeNULL,请将SM.start_time视为00:00:00,否则请使用SM.start_timeCAST结果表达式为8个字符的字符串(以容纳hh:mm:ss)。

连接上面的两个表达式,并将最终字符串称为DATETIME