original_string: public function extract($part, $expression, $types = [])
      {
          $expression = $this->_literalArgumentFunction('EXTRACT', $expression, $types, 'integer');
          $expression->setConjunction(' FROM')->add([$part => 'literal'], [], true);
  
          return $expression;
      }
code: public function extract($part, $expression, $types = [])
      {
          $expression = $this->_literalArgumentFunction('EXTRACT', $expression, $types, 'integer');
          $expression->setConjunction(' FROM')->add([$part => 'literal'], [], true);
  
          return $expression;
      }
code_tokens: public function extract ( $ part , $ expression , $ types = [ ] ) { $ expression = $ this -> _literalArgumentFunction ( 'EXTRACT' , $ expression , $ types , 'integer' ) ; $ expression -> setConjunction ( ' FROM' ) -> add ( [ $ part => 'literal' ] , [ ] , true ) ; return $ expression ; }
docstring: Returns the specified date part from the SQL expression.
  
  @param string $part Part of the date to return.
  @param string $expression Expression to obtain the date part from.
  @param array $types list of types to bind to the arguments
  @return \Cake\Database\Expression\FunctionExpression
docstring_tokens: Returns the specified date part from the SQL expression .